如何判断用户是否成功完成了共享意图?例如,如果用户想通过Facebook或Twitter分享应用程序。
编辑:
我不是在考虑如何创建Intent
进行分享。我想知道用户是否真的分享了什么。或者用户点击了取消按钮。
答案 0 :(得分:20)
我认为没有一种可靠的方法可以做到。
您可以使用startActivityForResult()
发起发送,并希望处理Intent的活动回复RESULT_OK
。但你不能总是依赖它来工作。
答案 1 :(得分:2)
对于推特 - "数据"当用户取消共享时,OnActivityResult中的对象为null。
答案 2 :(得分:1)
找到了适用于Android> = 22的选项。也许它可以对某人有所帮助。
从Android 22开始,可以选择以IntentSender
方法发送createChooser
对象。您可以为广播接收器创建挂起的意图,在其中可以获取用户单击的应用程序的程序包名称。
接收器:
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
// do something here
}
}
清单:
<receiver android:name="MyReceiver" android:exported="false"/>
创建待定意图:
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, receiver, PendingIntent.FLAG_UPDATE_CURRENT);
然后在选择器意图中使用它:
startActivity(Intent.createChooser(share
, "some_title"
, pendingIntent.getIntentSender()));
然后在onReceiver
中,您可以获取应用程序的软件包名称:
String selectedAppPackage = String.valueOf(intent.getExtras().get(EXTRA_CHOSEN_COMPONENT))
答案 3 :(得分:-6)
您已使用Intent.ACTION_SEND
,系统将显示您可以共享的应用程序列表(在设备上)。本网站解释了如何:
http://sudarmuthu.com/blog/sharing-content-in-android-using-action_send-intent