pix*_*xel 29 android android-intent android-pendingintent
我想使用新版本的Intent.createChooser方法IntentSender.
文档仅说明我可以从PendingIntent实例中获取它.在我看来,它似乎PendingIntent没有任何其他用途.
有没有其他方法可以获得IntentSender或我需要创建PendingIntent?
Bla*_*elt 47
选择目标意图不是PendingIntent.例如,在下面的代码片段中,我声明ACTION_SEND了类型的意图 text/plain,这是我的目标意图Intent.createChooser.然后我创建了另一个Intent接收器和一个处理程序,PendingIntet它将从选择器中选择一个东西后调用onReceive我BroadcastTest.
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
intent.setType("text/plain");
Intent receiver = new Intent(this, BroadcastTest.class);
receiver.putExtra("test", "test");
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, receiver, PendingIntent.FLAG_UPDATE_CURRENT);
Intent chooser = Intent.createChooser(intent, "test", pendingIntent.getIntentSender());
startActivity(chooser);
Run Code Online (Sandbox Code Playgroud)
编辑:
信息,如果BroadcastReceiver嵌入在您作为参数获得的意图中.选择其中一个选项后,检索Bundle的附加内容并使用该键android.intent.extra.CHOSEN_COMPONENT,您应该能够找到用户选择的内容.
尝试添加简单Log.d到onReceive
for (String key : intent.getExtras().keySet()) {
Log.d(getClass().getSimpleName(), " " + intent.getExtras().get(key));
}
Run Code Online (Sandbox Code Playgroud)
在我的例子中我得到了
ComponentInfo{org.telegram.messenger/org.telegram.ui.LaunchActivity}
为Telegram和
ComponentInfo{com.google.android.apps.inbox/com.google.android.apps.bigtop.activities.ComposeMessageActivity}
Run Code Online (Sandbox Code Playgroud)
对于 InBox
| 归档时间: |
|
| 查看次数: |
7093 次 |
| 最近记录: |