2

我在 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 预览错误?

4

0 回答 0