我在 Android M 上共享以及使用过滤器创建意图选择器时遇到问题。我创建了一个标准的文本共享意图:
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, getSharingText());
return intent;
然后我为选择器应用了过滤器:
List<Intent> targetedShareIntents = new ArrayList<>();
List<ResolveInfo> resolves = getActivity().getPackageManager().queryIntentActivities(intent, 0);
for (ResolveInfo resolveInfo : resolves) {
String packageName = resolveInfo.activityInfo.packageName;
Intent targetedShareIntent = new Intent(mPromoIntent);
if (!packageName.equals("com.facebook.katana")
&& !packageName.equals("com.vkontakte.android")) {
ComponentName componentName = new ComponentName(packageName, resolveInfo.activityInfo.name);
targetedShareIntents.add(targetedShareIntent.setComponent(componentName));
}
}
if (targetedShareIntents.isEmpty()) {
return null;
}
Intent chooser = targetedShareIntents.remove(0);
return Intent.createChooser(chooser, chooserText)
.putExtra(Intent.EXTRA_INITIAL_INTENTS,
targetedShareIntents.toArray(new Parcelable[targetedShareIntents.size()]));
我已经使用选择器意图启动了标准选择器选择器活动
startActivity(mAppsChooserIntent);
但在 Android M 上,它不显示选择器,它采用第一个意图(在我的情况下是蓝牙)并与之共享。
我查看了 ChooserActivity 类,它在 Android MNC 中比在 Android L 中大得多,但没有找到解决方案。
有人知道答案还是 Android M 预览错误?