是否可以检测 ACTION_SEND 意图是否成功?

Jas*_*ske 5 android android-intent

我有一个简单的 Android 应用程序,代码如下(来自Android 文档):

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
startActivity(Intent.createChooser(sendIntent, getResources().getText(R.string.send_to)));
Run Code Online (Sandbox Code Playgroud)

但是我找不到检测电子邮件是否已成功发送(或用户取消)的方法。有没有办法读取意图响应?

Com*_*are 7

有没有办法读取意图响应?

不是来自任意动作的任意活动。

Intent操作文档将告诉您是否有预期的输出。因此,例如,ACTION_GET_CONTENT记录为具有 output。对于这些Intent操作,您使用startActivityForResult(),并且输出的一部分将是“结果代码”,让您大致了解结果是什么。

然而:

  • 并非每个Intent操作都记录为具有输出。值得注意的是,ACTION_SEND没有记录为有 output。在这种情况下,您不使用startActivityForResult()(而是使用startActivity())。即使您确实使用了startActivityForResult(),您也无法知道负面结果是否意味着用户取消,或者其他活动是否只是按照文档进行操作而没有返回结果。

  • 某些活动有问题,无法在应有的时候返回结果。

  • 您对成功结果的定义和活动对成功结果的定义可能不同。

  • 考虑到这是 iOS 上的一个简单且有据可查的功能,不得不选择这个作为正确答案,这让我很伤心。 (2认同)