Pertanyaan Mendeteksi aplikasi target saat mengirim Intent


Saya berbagi gambar dengan menggunakan maksud kirim (ACTION_SEND).

Saya ingin tahu apakah ada aplikasi yang dipilih untuk dibagikan atau tidak. Bagaimana saya bisa melakukannya dan bagaimana saya tahu jika gambar berhasil dikirim?

Kode yang saya gunakan untuk berbagi gambar ada di sini:

Intent share = new Intent(Intent.ACTION_SEND);
share.setType("image/*");
share.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(new File(imageSharePath)));
startActivity(Intent.createChooser(share, "Share Image"));

4
2017-09-19 12:35


asal


Jawaban:


Anda perlu mengimplementasikan dialog Anda sendiri untuk pemilihan kegiatan.

Untuk membuat dialog yang perlu Anda gunakan PackageManager.queryIntentActivities(). Metode ini kembali List<ResolveInfo>.

ResolveInfo berisi beberapa informasi tentang suatu kegiatan (mis. resolveInfo.activityInfo.packageName), dan dengan bantuan PackageManager Anda dapat memperoleh informasi lain (berguna untuk menampilkan aktivitas dalam dialog) - ikon aplikasi dapat digambar, label aplikasi, dll.

Menampilkan hasil dalam daftar di dialog (atau dalam aktivitas yang ditata sebagai dialog). Ketika sebuah item diklik, buat baru Intent.ACTION_SEND, tambahkan konten yang Anda inginkan dan tambahkan paket kegiatan yang dipilih intent.setPackage(pkgName).


11
2017-09-19 12:39