我想在我的 onActivityResult 方法中检测某人是否已发送电子邮件或按下后退按钮或丢弃它。我怎么能做同样的事情。

我这样做

String[] reciepients = result.toArray(new String[result.size()]);
        Intent email = new Intent(android.content.Intent.ACTION_SEND);
        email.putExtra(android.content.Intent.EXTRA_EMAIL,reciepients);
        email.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
        email.putExtra(android.content.Intent.EXTRA_TEXT, emailMessage);
        email.setType("text/plain");
        email.setType("message/rfc822");
        Intent intent =  Intent.createChooser(email, "Choose Email Client");
        //context.start(Intent.createChooser(email, "Choose Email.."));
        ((Activity)context).startActivityForResult(intent, FinalVariables.SEND_EMAIL);

Activity 结果
@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);

        switch (requestCode) {


        case FinalVariables.SEND_EMAIL:
            if(resultCode==Activity.RESULT_CANCELED){
                showToast("Cancelled");
            }
            else if(resultCode==Activity.RESULT_OK){
                showToast("Success");
            }
            break;

        default:
            break;
        }

    }

但这种方式总是让我取消,因为电子邮件客户端从不将 RESULT 设置为 RESULT_OK。

那么我怎样才能满足我的要求。请建议。

谢谢

最佳答案

按照这个 link

  • 不能,这不是 API 的一部分。一旦你有它就会返回
    按下发送按钮,即使它没有发送

  • 不确定,但您得到的是 RESULT_CANCELED ,因为它看起来是默认的,用户未设置 Result ok 然后它考虑 RESULT_CANCELED 并且电子邮件 Activity 从未设置结果 RESULT_OK 所以它采用 RESULT_CANCELED 。
  • 您可以通过检查返回的 Intent 数据将始终为空
    邮件发送或丢弃。
  • 关于android - 在 onActivityResult 中检测电子邮件是否已发送,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17102578/

    10-12 12:47
    查看更多