#java
Вопрос:
Я хотел поделиться только указанными приложениями, поэтому я указал несколько приложений и использовал намерение поделиться, но только 3 приложения отображаются только в версии Android 11.
При тестировании в версиях Android 10 и версии 9 все указанные приложения отображаются хорошо, но в версии Android 11 отображаются только 3 приложения.
это мой код.
public void onShareClick(){
List<Intent> targetShareIntents=new ArrayList<Intent>();
Intent shareIntent=new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
List<ResolveInfo> resInfos = getPackageManager().queryIntentActivities(shareIntent, 0);
if(!resInfos.isEmpty()){
Log.d("Package Name : " , "" resInfos);
for(ResolveInfo resInfo : resInfos){
String packageName=resInfo.activityInfo.packageName;
Log.d("packageName", "" packageName);
if( packageName.contains("com.facebook.orca") ||
packageName.contains("com.samsung.android.messaging") ||
packageName.contains("com.kakao.talk") ||
packageName.contains("com.whatsapp") ||
packageName.contains("com.imo.android.imoim") ||
packageName.contains("com.facebook.mlite")
){
Log.d("Package Name", packageName);
Intent intent=new Intent();
intent.setComponent(new ComponentName(packageName, resInfo.activityInfo.name));
intent.putExtra("AppName", resInfo.loadLabel(getPackageManager()).toString());
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, editText.getText().toString());
intent.setPackage(packageName);
targetShareIntents.add(intent);
}
}
if(!targetShareIntents.isEmpty()){
Collections.sort(targetShareIntents, new Comparator<Intent>() {
@Override
public int compare(Intent o1, Intent o2) {
return o1.getStringExtra("AppName").compareTo(o2.getStringExtra("AppName"));
}
});
Intent chooserIntent=Intent.createChooser(targetShareIntents.remove(0), "Choose app to share");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetShareIntents.toArray(new Parcelable[]{}));
startActivity(chooserIntent);
}else{
//showDialaog(this);
}
}
}
и проявиться.
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>