2012-03-13 3 views
2

신청서에 문제가 있습니다. 이 앱의 목적은 데이터를 수집하고 지정된 이메일 주소로 javamail을 사용하여 데이터 양식을 제출하는 것입니다. 사용자가 버튼을 클릭하면 전자 메일 클라이언트를 선택하라는 메시지가 나타납니다. 그러나 테스트 할 때 프롬프트가 표시되지 않습니다. 누군가 내가 누락 된 것을 말해 줄 수 있습니까?이메일 의도 이메일 선택자

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[] {"[email protected]"}); 

    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(); 
} 
} 
+0

안녕하세요이 이므 란입니다, 무엇을이 두 라인에 대한'emailIntent.putExtra (android.content.Intent.EXTRA_EMAIL, 새로운 String [] { "[email protected]"}); emailIntent.setExtra (android.content.Intent.EXTRA_EMAIL, emailaddress); ' –

+0

또는이 emailIntent.setType ("plain/text")를'emailIntent.setType ("text/plain")으로 대체하십시오. –

+0

이 부분을 참조하십시오. 링크가 도움이 될 수 있습니다 http://www.vidyut.com/sunit/android/android_sendmail.html – Aerrow

답변

10

는 u는 당신이

String mailTo="[email protected]"; 
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...")); 

가 실제 장치에서이 이메일의 의도를 시도 ACTION_SENTTO 옵션을 사용할 수있다 장치를 설치하는 경우에만 전자 메일 클라이언트 중 하나를 선택하려면 ... 에뮬레이터는 당신에게 결과를 제공하지 않을 수 있습니다 ..

행운을 빕니다 ..

+0

감사합니다. 내 장치에서이 기능을 시험해 보았지만 전자 메일 선택기는 여전히 표시되지 않았습니다. 아주 이상한. 이 의향이 명단에서 촉발되어야 하는가? – MADPADGE

+0

아니요 ... 매니 페스트 파일에서 트리거하지 말아야합니다 .... – Kri

+0

하나의 제안은 실제 기기에 설치된 이메일 클라이언트가 더 많다는 것을 확인합니다 ... – Kri