Menangani Visibilitas Paket
Ikuti Policy Webinar 2021 yang akan diselenggarakan tanggal 14 April mendatang!
Pelajari bagaimana Google Play berkomitmen untuk memberikan pengalaman yang aman dan terpercaya bagi pengguna, serta developer.
Kebijakan kami dirancang untuk mendistribusikan aplikasi dan game secara aman kepada triliun pengguna di seluruh dunia.
Melalui acara Policy Webinar 2021, pelajari kebijakan terbaru dari tim Google, serta jangan lewatkan kesempatan tanya-jawab bersama para pakar seputar update kebijakan baru ini.
Daftar sekarang!
goo.gle/3do10tE
Pengantar:
Di Android, kami membuat perubahan untuk menyempurnakan privasi pengguna dan keamanan platform guna memberikan pengalaman yang lebih baik kepada pengguna. Aplikasi yang menargetkan Android 11 (API level 30) ke atas hanya akan melihat daftar aplikasi terfilter yang diinstal di perangkat. Untuk mengakses aplikasi di luar daftar terfilter, aplikasi harus mendeklarasikan aplikasi apa saja yang diperlukannya untuk berinteraksi langsung dengan menggunakan elemen <queries> di manifes Android. Postingan blog ini akan membahas praktik terbaik tentang cara beradaptasi dengan fitur ini.
Membuat kueri dan berinteraksi dengan aplikasi:
Ada berbagai cara untuk membuat kueri dan berinteraksi dengan aplikasi:
- Jika Anda ingin melakukan kueri atau berinteraksi dengan sekumpulan aplikasi yang Anda ketahui, masukkan nama paketnya dalam kumpulan elemen <package> di dalam elemen <queries>.
<manifest package="com.example.game"> <queries> <package android:name="com.example.store" /> <package android:name="com.example.services" /> </queries> ... </manifest> |
- Jika aplikasi Anda perlu membuat kueri atau berinteraksi dengan kumpulan aplikasi yang dipakai untuk tujuan tertentu, tetapi mungkin Anda tidak tahu nama paket yang harus disertakan, Anda bisa menampilkan daftar tanda tangan filter intent di elemen <queries> Anda. Setelah itu aplikasi Anda bisa menemukan aplikasi yang memiliki elemen <intent-filter> yang cocok.
<manifest package="com.example.game"> <queries> <intent> <action android:name="android.intent.action.SEND" /> <data android:mimeType="image/jpeg" /> </intent> </queries> ... </manifest> |
- Jika Anda perlu membuat kueri penyedia konten tetapi tidak mengetahui nama paket spesifiknya, Anda bisa mendeklarasikan otoritas penyedia tersebut dalam elemen <provider>.
<manifest package="com.example.suite.enterprise"> <queries> <provider android:authorities="com.example.settings.files" /> </queries> ... </manifest> |
Flag Activity:
Sebagian besar kasus penggunaan umum tidak mengharuskan aplikasi Anda memiliki visibilitas paket global. Pada banyak skenario, Anda bisa menggunakan startActivity() dan menangkap pengecualian jika tidak ada aplikasi yang bisa membuka intent ini.
try { val intent = Intent(ACTION_VIEW, Uri.parse(url)).apply { addCategory(CATEGORY_BROWSABLE) } startActivity(intent) } catch (e: ActivityNotFoundException) { Snackbar.make(it,"Activity Not Found",Snackbar.LENGTH_LONG).show() } |
Meskipun Anda bisa memulai aktivitas apa pun tanpa visibilitas target, Anda tidak bisa membuat kueri ketersediaan aktivitas itu sebelum memulainya atau mempelajari aplikasi spesifik yang akan diluncurkan karena merupakan intent implisit. Sebagai gantinya, Anda akan diberi tahu saat memulai jika hal itu tidak di-resolve. Untuk membantu menanganinya, Anda bisa menggunakan flag:
FLAG_ACTIVITY_REQUIRE_NON_BROWSER
Flag ini hanya meluncurkan intent jika intent tersebut di-resolve ke hasil yang bukan browser. Jika tidak ada hasil seperti itu, ActivityNotFoundExeception akan ditampilkan dan aplikasi Anda bisa membuka URL di tab khusus.
val intent = Intent(ACTION_VIEW, Uri.parse(url)).apply { // The URL should either launch directly in a non-browser app (if it's // the default), or in the disambiguation dialog. addCategory(CATEGORY_BROWSABLE) flags = FLAG_ACTIVITY_NEW_TASK or FLAG_ACTIVITY_REQUIRE_NON_BROWSER } |
Menyesuaikan share sheet
Kami merekomendasikan penggunaan share sheet sistem daripada share sheet khusus. Anda bisa menyesuaikan share sheet sistem tanpa memerlukan visibilitas aplikasi. Lihat dokumentasi ini untuk informasi selengkapnya.
Proses Debug Visibilitas Paket
Anda bisa dengan mudah memeriksa manifes untuk melihat semua kueri yang dimasukkan. Untuk melakukannya, buka file manifes Anda dan pilih Merged Manifest.
$ adb shell pm log-visibility --enable YOUR_PACKAGE_NAME |
Langkah berikutnya:
Untuk informasi selengkapnya tentang Visibilitas Paket, lihat referensi ini:
Selamat membuat kode!
I trust in you as a righteous man. I never expected anything less than this from you, and you did not disappoint me. In my opinion, the quality of the work continues. Wikipedia Page Maker
ReplyDeleteProfessional Wiki Writers ensure Wikipedia page creation service that helps improve the conversion rates seamlessly.
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteYou are a good man, and I believe in you. You did not let me down; I never had any expectations of anything less from you. The work's quality seems to be holding steady, in my perspective.Life Coaching Center
ReplyDeleteI have faith that you are a good man. You exceeded my expectations, which I had for you, and I am grateful. The work continues to be of a high caliber, in my opinion Reynolds Media Group
ReplyDeleteMust not already be receiving other SSS pension benefits. sss pension increase 2025 philippines . Step-by-Step Guide to Claim SSS ₱1,976 Pension 2025.
ReplyDeleteWant to feel like a superhero with no responsibilities and zero consequences? stickman hook gives you all the adrenaline and none of the lawsuits. Just don’t ask your stickman how many times he’s face-planted. It’s… a lot.
ReplyDeleteOne of the most significant features of the Ehsaas Undergraduate Scholarship Program is that it targets students who are studying in public sector universities. These students often face tough financial conditions and are at risk of dropping out due to the high cost of tuition and living expenses.
ReplyDelete