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()]));
そして、chooser インテントを使用して標準の Chooser ChooserActivity を開始しました
startActivity(mAppsChooserIntent);
しかし、Android M では、セレクターは表示されず、最初のインテント (私の場合は bluetooth) を受け取り、それと共有します。
Android MNC では Android L よりもはるかに大きい ChooserActivity クラスを調べましたが、解決策が見つかりませんでした。
誰かが答えを知っていますか、それとも Android M のプレビュー バグですか?