- söz dizimi:
-
<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>
- bulunduğu yer:
-
<application>
- şunları içerebilir:
<meta-data>
<grant-uri-permission>
<intent-filter>
<path-permission>
- description:
- .
Bir içerik sağlayıcı bileşeni tanımlar. İçerik sağlayıcı,
ContentProvider
tarafından yönetilen verilere yapılandırılmış erişim sağlayan bir uygulamadır. Uygulamanızdaki tüm içerik sağlayıcılar bir Manifest dosyasında<provider>
öğesi. Aksi takdirde, sistem bunların farkında olmaz. ve çalıştırmaz.Yalnızca uygulamanızın bir parçası olan içerik sağlayıcıları bildirin. Şu dilde içerik sağlayıcıları bildirmeyin: pek çok uygulama vardır.
Android sistemi, içerik sağlayıcılara yapılan referansları yetkililere göre depolar dizesi, sağlayıcının içerik URI'sinin bir parçasıdır. Örneğin, Arkadaş Bitkiler projesinin Sağlık uzmanlarıyla ilgili bilgilerin depolandığı bir içerik sağlayıcıya erişmek. Yapılacaklar yöntemi, metodu
ContentResolver.query()
, diğer bağımsız değişkenlerin yanı sıra sağlayıcıyı tanımlayan bir URI alır:content://com.example.project.healthcareprovider/nurses/rn
content:
şeması, URI'yı Android içerik sağlayıcısı. Yetkilicom.example.project.healthcareprovider
, sağlayıcıyı tanımlar. İlgili içeriği oluşturmak için kullanılan Android sistemi, bilinen sağlayıcılar ve yetkilileri listesinde yetkiliyi arar.nurses/rn
alt dizesi, içerik sağlayıcının kullandığı bir yoldur sağlayıcı verilerinin alt kümelerini tanımlamak için kullanılır.Sağlayıcınızı
<provider>
öğesinde tanımladığınızdaandroid:name
bağımsız değişkenine şemayı veya yolu dahil etmeyin, yalnızca yetkilidir.İçerik sağlayıcıları kullanma ve geliştirme hakkında bilgi için İçerik sağlayıcılar.
- özellikler:
-
android:authorities
- .
İçerik sağlayıcı tarafından sunulan verileri tanımlayan bir veya daha fazla URI yetkilisinin listesi.
Adlarını noktalı virgülle ayırarak birden fazla yetkiliyi listeleyin.
Çakışmaları önlemek amacıyla yetkili adları için Java tarzı bir adlandırma kuralı kullanın.
com.example.provider.cartoonprovider
gibi. Genellikle bu adı sağlayıcıyı uygulayanContentProvider
alt sınıfınınVarsayılan yoktur. En az bir yetkili belirtilmelidir.
android:enabled
- İçerik sağlayıcının sistem tarafından örneklendirilebilir olup olmadığı. İnsanların
Mümkünse
"true"
, değilse"false"
. Varsayılan değer"true"
.<application>
öğesi kendine ait Tümü için geçerli olanenabled
özelliği uygulama bileşenleri hakkında bilgi edindiniz. İlgili içeriği oluşturmak için kullanılan<application>
<provider>
özellikleri de"true"
olmalıdır. içerik sağlayıcının etkinleştirilmesi için varsayılan olarak kullanılır. İkisinden biri"false"
, sağlayıcı devre dışı. Örneklendirilemez. android:directBootAware
İçerik sağlayıcının Doğrudan Başlatma'ya duyarlı olup olmadığı, yani çalıştırılıp çalıştırılamayacağını belirler.
Not: Doğrudan Başlatma, bir içerik uygulamanızdaki sağlayıcı ise yalnızca şurada depolanan verilere erişebilir: cihaz korumalı depolama alanı.
Varsayılan değer
"false"
değeridir.android:exported
- .
İçerik sağlayıcının diğer uygulamaların kullanımına açık olup olmadığı.
-
"true"
: Sağlayıcı, diğer uygulamalarda kullanılabilir. Her uygulama erişmek için sağlayıcının içerik URI'sini kullanın. Bu bilgi, sağlayıcıdır. -
"false"
: Sağlayıcı, diğer uygulamalar tarafından kullanılamıyor. Ayarlaandroid:exported="false"
: Sağlayıcınızın erişimini izin verir. Yalnızca sağlayıcıyla aynı kullanıcı kimliğine (UID) sahip uygulamalar veya veya uygulamalara geçici olarak erişim izni verilen uygulamalar aracılığıylaandroid:grantUriPermissions
öğesine sahip olmayabilir.
Bu özellik API düzeyi 17'de kullanıma sunulduğundan, API düzeyi çalıştıran tüm cihazlar 16 ve altındaki değerler, bu özellik
"true"
olarak ayarlanmış gibi davranır. Mevcutandroid:targetSdkVersion
. 17 veya üzerine çıkarsa API çalıştıran cihazlar için varsayılan değer"false"
olur 17. seviye ve üstü olmalıdır.android:exported="false"
cihazını ayarlayabilir vepermission
özelliğini gönderin. -
android:grantUriPermissions
- Genellikle erişim izni olmayanlar
içerik sağlayıcının verilerine erişim izni verilebilir.
ya da sözleşmenin getirdiği kısıtlamayı geçici olarak
readPermission
,writePermission
,permission
veexported
özellikleri hakkında daha fazla bilgi edinin.İzin verilebilirse
"true"
, verilemiyorsa"false"
değeridir."true"
ise herhangi bir içeriğe izin verilebilir tarafından sağlanan verilerdir."false"
ise yalnızca izin verilebilir her bir anahtar kelime için<grant-uri-permission>
alt öğe, belirtin. Varsayılan değer"false"
değeridir.İzin verme, bir uygulama bileşenine bir defalık izin vermenin bir yoludur bir izinle korunan verilere erişebilir. Örneğin, bir e-posta ileti bir ek içeriyorsa, posta uygulaması uygun görüntüleyici olsa bile, görüntüleyen kişi genel bilgiler verilerine göz atma izni arıyoruz.
Bu gibi durumlarda izin, ilgili kuruluş tarafından
FLAG_GRANT_READ_URI_PERMISSION
. veFLAG_GRANT_WRITE_URI_PERMISSION
bayrağını etkinleştirenIntent
nesnesinde bulunur. Örneğin, posta uygulaması,FLAG_GRANT_READ_URI_PERMISSION
adresiniIntent
Context.startActivity()
tarihine geçti. Bu izin,Intent
içindeki URI'ye gider.Bu özelliği,
"true"
değerine ayarlayarak etkinleştirirseniz veya<grant-uri-permission>
alt öğeler, çağrıContext.revokeUriPermission()
kapalı bir URI sağlayıcıdan silindiğinde.Ayrıca bkz.
<grant-uri-permission>
öğesine dokunun. android:icon
- İçerik sağlayıcıyı temsil eden bir simge.
Bu özellik,
görebilirsiniz. Ayarlanmadıysa uygulama için belirtilen simge
bunun yerine bir bütün olarak kullanılır. Daha fazla bilgi için
<application>
inceleyin. öğesininicon
özelliği. android:initOrder
- İçerik sağlayıcının örneklenme sırası, ve aynı işlem tarafından barındırılan diğer içerik sağlayıcılara kıyasla %40 daha fazladır. İçerik sağlayıcılar arasında bağımlılıklar olduğunda, bunu ayarlamak özelliği, öğelerin sipariş sırasında gerekli olduğunu açıklayacağım. Değer bir tam sayıdır yüksek sayıların ilk kullanıma hazırlanması gerekir.
android:label
- Sağlanan içerik için kullanıcı tarafından okunabilen bir etiket
Bu özellik ayarlanmazsa uygulamanın tamamı için ayarlanan etiket
kullanılır. Daha fazla bilgi için
<application>
öğesine bakın.label
özelliği için de geçerlidir.Etiket genellikle bir dize kaynağına başvuru olarak ayarlanır. Böylece, bu dizeler, kullanıcı arayüzündeki diğer dizeler gibi yerelleştirilebilir. Ancak, uygulamayı geliştirirken size kolaylık olması açısından, aynı zamanda ham dize olarak da ayarlanabilir.
android:multiprocess
- Uygulama birden fazla işlemde çalışıyorsa bu özellik,
birden fazla içerik sağlayıcı örneği oluşturulur.
"true"
ise Uygulama işlemlerinin her birinin kendi içerik sağlayıcı nesnesi vardır. Eğer"false"
, uygulamanın işlemleri yalnızca bir içerik sağlayıcı nesnesi paylaşıyor. Varsayılan değer"false"
değeridir.Bu işareti
"true"
olarak ayarlamak, işlemler arası iletişimin ek yükünü de beraberinde getirir izler. android:name
- İçerik sağlayıcıyı uygulayan sınıfın adı,
ContentProvider
. Bu genelde proje başlatma belgenize"com.example.project.TransportationProvider"
gibi bir ad girin. Bununla birlikte, adın ilk karakteri noktaysa ,<manifest>
öğesi.Varsayılan yoktur. Ad belirtilmelidir.
android:permission
- İstemcilerin
için de geçerlidir. Bu özellik, etiketleri kullanarak
hem okuma hem de yazma için tek bir izin almanız gerekir. Ancak
readPermission
,writePermission
vegrantUriPermissions
özellikleri önceliklidir istiyorum.readPermission
özelliği de ayarlanmışsa içerik sağlayıcıyı sorgulamak için erişimi kontrol eder.writePermission
özelliği ayarlanırsa Sağlayıcının verilerini değiştirme erişimini kontrol eder.İzinler hakkında daha fazla bilgi için İzinler bölümünü inceleyin ve Güvenlik ipuçları.
android:process
- İçerik sağlayıcının çalıştığı işlemin adı. Normalde
bir uygulamanın tüm bileşenlerinin, uygulama için oluşturulan varsayılan işlemde
bir uygulamadır. Uygulama paketiyle aynı ada sahiptir.
İlgili içeriği oluşturmak için kullanılan
<application>
öğesininprocess
özelliğinin değeri farklı bir varsayılan olarak ayarlamanız gerekir. Ancak her bileşen, varsayılan bileşeni geçersiz kılabilir kendine aitprocess
özelliğine sahip. Böylece, birden fazla işlemde kullanılabilir.Bu özelliğe atanan ad iki nokta üst üste (
:
) ile başlıyorsa yeni bir uygulamaya özel bir süreç oluşturulur ve etkinlik bu süreçte yürütülür.İşlem adı küçük harfle başlıyorsa etkinlik çalıştırılır buna izin verilmesi gerekir. Bu, farklı uygulamalardaki bileşenlerin bir işlemi paylaşmasına izin verir ve kaynak kullanımını anlatır.
android:readPermission
İstemcilerin, içerik sağlayıcıyı sorgulaması için sahip olması gereken izin.
Sağlayıcı
android:grantUriPermissions
özelliğini ayarlarsa"true"
veya belirli bir müşteri<grant-uri-permission>
alt öğesi olduğunda, istemci içeriğe geçici okuma erişimi elde edebilir tarafından sağlanan verilerdir.Ayrıca bkz.
permission
vewritePermission
özellikleri.android:syncable
- Verilerin içerik sağlayıcının kontrolünde olup olmadığı
sunucudaki verilerle senkronize edilebilir. Saat
"true"
mümkünse"false"
. android:writePermission
İstemcilerin verilerde değişiklik yapması için gereken izin içerik sağlayıcı tarafından kontrol edilir.
Sağlayıcı
android:grantUriPermissions
özelliğini ayarlarsa"true"
veya belirli bir müşteri<grant-uri-permission>
alt öğesi olduğunda, istemci, içeriği değiştirmek için geçici yazma erişimi elde edebilir tarafından sağlanan verilerdir.Ayrıca bkz.
permission
vereadPermission
özellikleri.
- tanıtıldığı yer:
- API düzeyi 1
- ayrıca bkz.:
- İçerik sağlayıcılar
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2024-08-22 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2024-08-22 UTC."],[],[]]