Çözümünüz gider. Eğer ctx.getPackageName() ile "packageNameToExclude" değiştirebilir kendi uygulamasını hariç olmak istiyorsanız
public static Intent shareExludingApp(Context ctx, String packageNameToExclude, String imagePath, String text) {
List<Intent> targetedShareIntents = new ArrayList<Intent>();
Intent share = new Intent(android.content.Intent.ACTION_SEND);
share.setType("image/*");
List<ResolveInfo> resInfo = ctx.getPackageManager().queryIntentActivities(createShareIntent(text,new File(imagePath)), 0);
if (!resInfo.isEmpty()) {
for (ResolveInfo info : resInfo) {
Intent targetedShare = createShareIntent(text,new File(imagePath));
if (!info.activityInfo.packageName.equalsIgnoreCase(packageNameToExclude)) {
targetedShare.setPackage(info.activityInfo.packageName);
targetedShareIntents.add(targetedShare);
}
}
Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(0),
"Select app to share");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS,
targetedShareIntents.toArray(new Parcelable[] {}));
return chooserIntent;
}
return null;
}
private static Intent createShareIntent(String text, File file) {
Intent share = new Intent(android.content.Intent.ACTION_SEND);
share.setType("image/*");
if (text != null) {
share.putExtra(Intent.EXTRA_TEXT, text);
}
share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
return share;
}
Bu orada bir şey benim süzülmüş Listesini geri besleyebilir kullanmalıdır Share Dialog'u oluşturmak için, veya listeyi kullanarak kendi iletişimimi oluşturmam gerekir mi? Eğer ikincisiyse, App'in ikonlarının bir diyalogda görünmesini nasıl sağlayabilirsiniz? Teşekkürler. –
cottonBallPaws
@littleFluffyKitty: Kendi diyaloğunu (örn., 'AlertDialog.Builder' ve 'setAdapter()') kullanırdınız. 'PackageManager' size simgeleri verebilir. Http://github.com/commonsguy/cw-advandroid/tree/master/Introspection/Launchalot/ – CommonsWare
adresine bakın, bu gerçekten faydalıdır. QueryIntentActivities() uygulamasından döndürülen listeyi uygulamamla karşılaştırmak/filtrelemenin en iyi yolu olan herhangi bir öneriniz var mı? Paket adını kullanmayı düşünüyordum, ama daha iyi bir karşılaştırma var mı? – cottonBallPaws