Android M共享选择器过滤器

时间:2015-07-02 09:30:56

标签: android android-intent android-sharing android-6.0-marshmallow

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

0 个答案:

没有答案