我在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()]));
我已经使用选择器意图启动了标准选择器ChooserActivity
startActivity(mAppsChooserIntent);
但是在Android M上它没有显示选择器,它需要第一个意图(在我的情况下是蓝牙)并与之共享。
我已经浏览了ChooserActivity类,它在Android MNC中比在Android L中大得多,并且没有找到解决方案。
有人知道答案或Android M预览错误吗?