Domanda

Sto avendo un problema con la mia applicazione.Lo scopo dell'app è quello di raccogliere dati e inviare il modulo dati utilizzando JavaMail a un indirizzo email specificato.Quando l'utente fa clic sul pulsante, dovrebbero ricevere un prompt per selezionare un client di posta elettronica, tuttavia non sto ottenendo questo prompt quando lo testo.Qualcuno può dirmi cosa mi manca?

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;

public class SubmitForm extends Activity implements View.OnClickListener {
private Intent emailIntent;
EditText personsFirstName, personsLastName, personsEmail, personsPhone, comments, vehicleModel;
Spinner vehicleYear, vehicleMake, serviceTime, serviceNeeded;
TextView serviceDate;
String fname, lname, emailAdd, phoneNumber, vehicleYears, vehicleModeltrim, vehicleManu, serviceAppointment, serviceAppointmentTime, serviceTypeNeeded, extraComments;
Button sendEmail;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.service);
    initializeVars();
    sendEmail.setOnClickListener(this);
}
private void initializeVars() {
    // TODO Auto-generated method stub
    personsFirstName = (EditText) findViewById(R.id.firstName);
    personsLastName = (EditText) findViewById(R.id.lastName);
    personsEmail = (EditText) findViewById(R.id.Email);
    personsPhone = (EditText) findViewById(R.id.PhoneNumber);
    vehicleYear = (Spinner) findViewById(R.id.sYear);
    vehicleMake = (Spinner) findViewById(R.id.sMake);
    vehicleModel = (EditText) findViewById(R.id.Model);
    serviceDate = (TextView) findViewById(R.id.Model);
    serviceTime = (Spinner) findViewById(R.id.sTime);
    serviceNeeded = (Spinner) findViewById(R.id.sNeeded);
    comments = (EditText) findViewById(R.id.eComments);
    sendEmail = (Button) findViewById(R.id.bSubmit);
}
public void onClick(View v) {
    // TODO Auto-generated method stub
    convertToString();
    String emailaddress[] = { emailAdd };
    String message = "Please Review the following"
            + '\n' + " "
            + '\n' + "First Name: " + fname
            + '\n' + "Last Name: " + lname
            + '\n' + "Email :" + emailAdd
            + '\n' + "Phone Number: " + phoneNumber
            + '\n' + "Vechile Year: " + vehicleYears
            + '\n' + "Vehicle Make: " + vehicleManu
            + '\n' + "Vehicle Model: " + vehicleModeltrim
            + '\n' + "Requested Service Date: " + serviceAppointment
            + '\n' + "Requested Service Time: " + serviceAppointmentTime
            + '\n' + "Service Needed: " + serviceTypeNeeded
            + '\n' + "Comments: " + extraComments;

    Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
    emailIntent.setType("plain/text");
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] {"test@someemail.com"});

    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, emailaddress);
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Schedule Service Request");

    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, message);
    startActivity(Intent.createChooser(emailIntent, "Please select Email Client"));
}
private void convertToString() {
    // TODO Auto-generated method stub

    fname = personsFirstName.getText().toString();
    lname = personsLastName.getText().toString();
    emailAdd = personsEmail.getText().toString();
    phoneNumber = personsPhone.getText().toString();

    //vehicleYears = vehicleYear.getText().toString();
    vehicleYears = (String) vehicleYear.getAdapter().getItem(RESULT_OK);


    //vehicleManu = vehicleMake.getText().toString();
    vehicleManu = (String) vehicleMake.getAdapter().getItem(RESULT_OK);

    vehicleModeltrim = vehicleModel.getText().toString();
    serviceAppointment = serviceDate.getText().toString();
    serviceAppointmentTime = (String) serviceTime.getAdapter().getItem(RESULT_OK);


    //serviceTypeNeeded = serviceNeeded.getText().toString();
    serviceTypeNeeded = (String) serviceNeeded.getAdapter().getItem(RESULT_OK);

    extraComments = comments.getText().toString();
}
@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    finish();
}
}
.

È stato utile?

Soluzione

Se vuoi solo scegliere tra l'installazione del client di posta elettronica sul dispositivo è possibile utilizzare l'opzione Action_Sento

String mailTo="email@gmail.com";
Intent email_intent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto",mailTo, null)); 
email_intent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject text here"); 
email_intent.putExtra(android.content.Intent.EXTRA_TEXT,"Body text here"); 

startActivity(Intent.createChooser(email_intent, "Send email..."));
.

Prova questo intento via email sul dispositivo reale ... L'emulatore potrebbe non darti il risultato ..

Buona fortuna ..

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top