- sintaksis:
-
<provider android:authorities="list" android:directBootAware=["true" | "false"] android:enabled=["true" | "false"] android:exported=["true" | "false"] android:grantUriPermissions=["true" | "false"] android:icon="drawable resource" android:initOrder="integer" android:label="string resource" android:multiprocess=["true" | "false"] android:name="string" android:permission="string" android:process="string" android:readPermission="string" android:syncable=["true" | "false"] android:writePermission="string" > ... </provider>
- terdapat dalam:
-
<application> - dapat berisi:
<meta-data><grant-uri-permission><intent-filter><path-permission>- deskripsi:
-
Mendeklarasikan komponen penyedia konten. Penyedia konten adalah subclass
ContentProvideryang menyediakan akses terstruktur ke data yang dikelola aplikasi. Semua penyedia konten dalam aplikasi Anda harus ditentukan di elemen<provider>dalam file manifes. Jika tidak, sistem tidak mengetahuinya dan tidak akan menjalankannya.Hanya deklarasikan penyedia konten yang merupakan bagian dari aplikasi Anda. Jangan mendeklarasikan penyedia konten dalam aplikasi lain yang Anda gunakan dalam aplikasi.
Sistem Android menyimpan referensi ke penyedia konten sesuai dengan string otoritas, yang merupakan bagian dari URI konten penyedia. Contohnya, Anda ingin mengakses penyedia konten yang menyimpan informasi tentang para profesional di bidang perawatan kesehatan. Untuk melakukannya, panggil metode
ContentResolver.query(), yang menggunakan URI yang mengidentifikasi penyedia, di antara argumen lainnya:content://com.example.project.healthcareprovider/nurses/rn
content:skema mengidentifikasi URI sebagai URI konten yang mengarah ke penyedia konten Android.com.example.project.healthcareproviderotoritas mengidentifikasi penyedia itu sendiri. Sistem Android mencari otoritas tersebut dalam daftar penyedia yang diketahui dan otoritasnya. Substringnurses/rnadalah jalur yang digunakan oleh penyedia konten untuk mengidentifikasi subset data penyedia.Saat Anda menentukan penyedia di elemen
<provider>, jangan sertakan skema atau jalur di argumenandroid:name, kecuali otoritas.Untuk mengetahui informasi cara menggunakan dan mengembangkan penyedia konten, lihat Penyedia konten.
- atribut:
-
android:authorities-
Daftar dari satu atau beberapa otoritas URI yang mengidentifikasi data yang ditawarkan oleh penyedia konten.
Cantumkan beberapa otoritas dengan memisahkan namanya menggunakan titik koma.
Untuk menghindari terjadinya konflik, gunakan konvensi penamaan gaya Java untuk nama otoritas,
seperti
com.example.provider.cartoonprovider. Biasanya, ini adalah nama subclassContentProvideryang mengimplementasikan penyedia tersebut.Tidak ada default-nya. Minimal satu otoritas harus ditentukan.
android:enabled- Apakah penyedia konten dapat dibuat oleh sistem. Nilainya
"true"jika ya, dan"false"jika tidak. Nilai default-nya adalah"true".Elemen
<application>memiliki atributenabledtersendiri yang berlaku untuk semua komponen aplikasi, termasuk penyedia konten. Atribut<application>dan<provider>harus bernilai"true", sebagaimana default-nya, agar penyedia konten dapat diaktifkan. Jika salah satunya bernilai"false", penyedia akan dinonaktifkan. Instance untuk atribut tersebut tidak dapat dibuat. android:directBootAwareApakah penyedia konten adalah Direct-Boot aware—yaitu, apakah dapat dijalankan sebelum pengguna membuka kunci perangkat.
Catatan: Selama Direct Boot, penyedia konten dalam aplikasi Anda hanya dapat mengakses data yang disimpan di penyimpanan perangkat yang dilindungi.
Nilai default-nya adalah
"false".android:exported-
Apakah penyedia konten tersedia untuk digunakan oleh aplikasi lain.
-
"true": penyedia akan tersedia untuk aplikasi lain. Semua aplikasi dapat menggunakan URI konten penyedia untuk mengaksesnya, sesuai dengan izin yang ditentukan untuk penyedia tersebut. -
"false": penyedia tidak tersedia untuk aplikasi lain. Tetapkanandroid:exported="false"untuk membatasi akses ke penyedia ke aplikasi Anda. Hanya aplikasi yang memiliki ID pengguna (UID) yang sama sebagai penyedia, atau aplikasi yang diberi akses sementara ke penyedia melalui elemenandroid:grantUriPermissions, yang dapat mengaksesnya.
Karena atribut ini diperkenalkan di API level 17, semua perangkat yang menjalankan API level 16 dan lebih lama akan berperilaku seolah-olah atribut ini ditetapkan ke
"true". Jika Anda menetapkanandroid:targetSdkVersionpada API level 17 atau yang lebih baru, maka nilai defaultnya adalah"false"untuk perangkat yang menjalankan API level 17 dan yang lebih baru.Anda dapat menetapkan
android:exported="false"dan masih dapat membatasi akses ke penyedia Anda dengan menyetel izin menggunakan atributpermission. -
android:grantUriPermissions- Apakah pengguna yang biasanya tidak memiliki izin untuk
mengakses data penyedia konten dapat diberi izin untuk melakukannya
agar dapat mengatasi pembatasan yang diberlakukan oleh atribut
readPermission,writePermission,permission, danexporteduntuk sementara waktu."true"jika izin dapat diberikan, dan"false"jika tidak. Jika"true", izin dapat diberikan ke data penyedia konten mana pun. Jika"false", izin hanya dapat diberikan ke subset data yang tercantum di sub-elemen<grant-uri-permission>, jika ada. Nilai default-nya adalah"false".Memberikan izin adalah cara untuk memberikan komponen aplikasi akses satu-kali ke data yang dilindungi oleh izin. Contohnya, jika pesan email berisi lampiran, aplikasi email mungkin memanggil penampil yang sesuai untuk membukanya, meskipun penampil tersebut sama sekali tidak memiliki izin umum untuk melihat data penyedia konten.
Dalam kasus tersebut, izin ditandai dengan
FLAG_GRANT_READ_URI_PERMISSIONdanFLAG_GRANT_WRITE_URI_PERMISSIONdi objekIntentyang mengaktifkan komponen tersebut. Contohnya, aplikasi email mungkin memasukkanFLAG_GRANT_READ_URI_PERMISSIONdiIntentyang diteruskan keContext.startActivity(). Izin tersebut khusus untuk URI diIntent.Jika Anda mengaktifkan fitur ini, baik dengan menyetel atribut ini ke
"true"maupun dengan menentukan sub-elemen<grant-uri-permission>, panggilContext.revokeUriPermission()saat URI yang tertutup dihapus dari penyedia.Lihat juga elemen
<grant-uri-permission>. android:icon- Ikon yang merepresentasikan penyedia konten.
Atribut ini ditetapkan sebagai referensi ke resource drawable yang berisi
definisi gambar. Jika tidak, ikon yang ditetapkan untuk aplikasi
secara keseluruhan akan digunakan. Untuk mengetahui informasi selengkapnya, lihat
atribut
iconelemen<application>. android:initOrder- Urutan yang dibuat penyedia konten sesuai dengan penyedia konten lain yang dihosting oleh proses yang sama. Jika ada dependensi di antara penyedia konten, menetapkan atribut ini untuk masing-masing akan memastikan bahwa penyedia konten tersebut dibuat dalam urutan yang diwajibkan oleh dependensi tersebut. Nilainya adalah bilangan bulat, dengan angka yang lebih tinggi yang akan diinisialisasi terlebih dahulu.
android:label- Label yang dapat dibaca pengguna untuk konten yang disediakan.
Jika atribut ini tidak ditetapkan, label yang ditetapkan untuk aplikasi secara keseluruhan
akan digunakan. Untuk mengetahui informasi selengkapnya, lihat atribut
labelelemen<application>.Label harus ditetapkan sebagai referensi ke resource string sehingga dapat dilokalkan seperti string lain pada antarmuka pengguna. Namun, untuk memudahkan Anda mengembangkan aplikasi, label ini juga dapat ditetapkan sebagai string mentah.
android:multiprocess- Jika aplikasi berjalan dalam beberapa proses, atribut ini menentukan apakah
beberapa instance penyedia konten telah dibuat. Jika
"true", setiap proses aplikasi memiliki objek penyedia kontennya sendiri. Jika"false", proses aplikasi hanya berbagi satu objek penyedia konten. Nilai default-nya adalah"false".Menetapkan tanda ini ke
"true"dapat meningkatkan performa dengan mengurangi overhead komunikasi antar-proses (IPC), tetapi juga akan meningkatkan jejak memori setiap proses. android:name- Nama class yang mengimplementasikan penyedia konten, yang merupakan subclass
ContentProvider. Nama ini biasanya merupakan nama class yang sepenuhnya memenuhi syarat, seperti"com.example.project.TransportationProvider". Namun, sebagai singkatan, jika karakter pertamanya adalah titik, karakter ini akan ditambahkan ke nama paket yang ditetapkan dalam elemen<manifest>.Tidak ada default-nya. Nama ini harus ditetapkan.
android:permission- Nama izin yang harus dimiliki klien untuk membaca atau menulis
data penyedia konten. Atribut ini adalah cara yang mudah untuk menetapkan
satu izin untuk membaca dan menulis. Namun,
atribut
readPermission,writePermission, dangrantUriPermissionslebih diprioritaskan daripada atribut ini.Jika atribut
readPermissionjuga ditetapkan, atribut tersebut akan mengontrol akses untuk mengkueri penyedia konten. Jika atributwritePermissionditetapkan, atribut tersebut akan mengontrol akses untuk mengubah data penyedia.Untuk mengetahui informasi selengkapnya tentang izin, lihat bagian Izin di ringkasan manifes aplikasi dan Tips keamanan.
android:process- Nama proses yang digunakan oleh penyedia konten. Biasanya,
semua komponen aplikasi berjalan pada proses default yang dibuat untuk
aplikasi tersebut. Proses ini memiliki nama yang sama dengan paket aplikasi.
Atribut
processmilik elemen<application>dapat menetapkan default yang berbeda untuk semua komponen. Namun, setiap komponen dapat mengganti nilai default dengan atributprocess-nya sendiri, sehingga Anda dapat menyebarkan aplikasi ke beberapa proses.Jika nama yang ditetapkan untuk atribut ini diawali dengan titik dua (
:), proses baru, yang bersifat pribadi untuk aplikasi, akan dibuat saat diperlukan dan aktivitas akan berjalan dalam proses tersebut.Jika nama proses dimulai dengan karakter huruf kecil, aktivitas akan berjalan pada proses global dari nama tersebut, jika memiliki izin untuk melakukannya. Hal ini memungkinkan komponen dalam aplikasi yang berbeda untuk berbagi proses, sehingga mengurangi penggunaan resource.
android:readPermissionSuatu izin yang harus dimiliki klien untuk mengkueri penyedia konten.
Jika penyedia menetapkan
android:grantUriPermissionske"true", atau jika klien tertentu memenuhi ketentuan sub-elemen<grant-uri-permission>, klien tersebut dapat memperoleh akses baca sementara ke data penyedia.Lihat juga atribut
permissiondanwritePermission.android:syncable- Apakah data yang berada dalam kontrol penyedia konten
dapat disinkronkan dengan data di server. Bernilai
"true"jika ya, dan bernilai"false"jika tidak. android:writePermissionIzin yang diperlukan oleh klien untuk melakukan perubahan pada data yang dikontrol oleh penyedia konten.
Jika penyedia tersebut menetapkan
android:grantUriPermissionske"true", atau jika klien tertentu memenuhi ketentuan sub-elemen<grant-uri-permission>, klien tersebut dapat memperoleh akses tulis sementara untuk mengubah data penyedia konten.Lihat juga atribut
permissiondanreadPermission.
- diperkenalkan di:
- API level 1
- lihat juga:
- Penyedia konten
<penyedia>
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-27 UTC.
[null,null,["Terakhir diperbarui pada 2025-07-27 UTC."],[],[]]