Android - getting an error “no application can perform this action” while trying to send an email?

三世轮回 提交于 2019-12-06 22:13:59

问题


I am making an app in which i am going to provide a feedback feature to my customers. To acheive this i have created a small dialogue box where user can input there feedback and send it to my mail ID. I tried some code snippets which i found on internet but whenever i try to send an email from emulator or actual device, i am gettig an error "No Application can perform this action".

Here is my code :-

public void emailDialog()
{
    AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
    alertDialog.setTitle("Feedback");
    alertDialog.setMessage("Please tell us that what you feel about our product. If you are facing any problem or found any bug then please report to us. Your review is important to us. Thanks!!");
    final EditText input = new EditText(this);
    input.setLines(8);
    alertDialog.setView(input);
    alertDialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            String value = input.getText().toString();
            String address = "varundroid@gmail.com";
            String subject = "FeedBack";
            final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
            emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, address);
            emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
            emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, value);
            CompleteTaskManager.this.startActivity(Intent.createChooser(emailIntent, "Send Email.."));
        }
    });
    alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int whichButton) {
        // Canceled.
      }
    });
alertDialog.show();
}

Please Help.


回答1:


I think you need to set the type of the intent object. Can you try the following

emailIntent.setType("message/rfc822");

or

emailIntent.setType("text/plain");



回答2:


If someone's trying to do this from XML preferences, I accomplished this by adding in the Preference element an intent with as action ACTION_SENDTO and as data mailto:your.email@domain.com. Hope this could help someone.



来源:https://stackoverflow.com/questions/5779077/android-getting-an-error-no-application-can-perform-this-action-while-trying

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!