- 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>
- şunları içerir:
-
<application>
- aşağıdakileri içerebilir:
<meta-data>
<grant-uri-permission>
<intent-filter>
<path-permission>
- description:
-
İçerik sağlayıcı bileşeni tanımlar. İçerik sağlayıcı, uygulama tarafından yönetilen verilere yapılandırılmış erişim sağlayan
ContentProvider
alt sınıfıdır. Uygulamanızdaki tüm içerik sağlayıcılar, manifest dosyasındaki bir<provider>
öğesinde tanımlanmalıdır. Aksi takdirde, sistem bunların farkında olmaz ve bunları çalıştırmaz.Yalnızca uygulamanızın bir parçası olan içerik sağlayıcıları bildirin. Uygulamanızda kullandığınız diğer uygulamalardaki içerik sağlayıcıları beyan etmeyin.
Android sistemi, içerik sağlayıcılara yapılan referansları yetki dizesine göre depolar. Bu dize, sağlayıcının içerik URI'sının bir parçasıdır. Örneğin, sağlık uzmanlarıyla ilgili bilgiler içeren bir içerik sağlayıcıya erişmek istediğinizi varsayalım. Bunu yapmak için diğer bağımsız değişkenlerin yanı sıra sağlayıcıyı tanımlayan bir URI alan
ContentResolver.query()
yöntemini çağırırsınız:content://com.example.project.healthcareprovider/nurses/rn
content:
şeması, URI'yi bir Android içerik sağlayıcıyı işaret eden içerik URI'si olarak tanımlar.com.example.project.healthcareprovider
yetkilisi, sağlayıcının kendisini tanımlar. Android sistemi, bilinen sağlayıcılar ve yetkilileri listesinde yetkilileri arar.nurses/rn
alt dizesi, içerik sağlayıcının, sağlayıcı verilerinin alt kümelerini tanımlamak için kullandığı bir yoldur.Sağlayıcınızı
<provider>
öğesinde tanımladığınızdaandroid:name
bağımsız değişkenine şema veya yol yerine yalnızca yetkiliyi dahil edersiniz.İçerik sağlayıcıları kullanma ve geliştirme hakkında bilgi için İçerik sağlayıcılar konusuna bakın.
- özellikler:
-
android:authorities
-
İçerik sağlayıcının sunduğu verileri tanımlayan bir veya daha fazla URI yetkilisinin listesi.
Adlarını noktalı virgülle ayırarak birden fazla yetkili kurumu listeleyin.
Çakışmaları önlemek amacıyla yetkili adları için
com.example.provider.cartoonprovider
gibi Java stili bir adlandırma kuralı kullanın. Genellikle, sağlayıcıyı uygulayanContentProvider
alt sınıfının adıdırVarsayılan değer yoktur. En az bir yetkili belirtilmelidir.
android:enabled
- İçerik sağlayıcının sistem tarafından örneklenip gösterilemeyeceği. Mümkünse
"true"
, değilse"false"
olur."true"
, varsayılan değerdir.<application>
öğesinin, içerik sağlayıcılar dahil tüm uygulama bileşenleri için geçerli olan kendienabled
özelliği vardır. İçerik sağlayıcının etkinleştirilebilmesi için hem<application>
hem de<provider>
özelliğinin her ikisi de varsayılan olarak"true"
olmalıdır. Bunlardan biri"false"
ise sağlayıcı devre dışıdır. Örnekleme yapılamaz. android:directBootAware
İçerik sağlayıcının Doğrudan Başlatma'yı duyarlı olup olmadığı, diğer bir deyişle kullanıcı cihazın kilidini açmadan önce çalışıp çalışamadığı.
Not: Uygulamanızdaki bir içerik sağlayıcı, Doğrudan Başlatma sırasında yalnızca cihazla korunan depolama alanında depolanan verilere erişebilir.
Varsayılan değer
"false"
olarak ayarlanmıştır.android:exported
-
İçerik sağlayıcının diğer uygulamalar için kullanılabilir olup olmadığı.
-
"true"
: Sağlayıcı, diğer uygulamalar tarafından kullanılabilir. Herhangi bir uygulama, sağlayıcı için belirtilen izinlere tabi olmak üzere sağlayıcının içerik URI'sini kullanarak erişebilir. -
"false"
: Sağlayıcı, diğer uygulamalar tarafından kullanılamaz. Sağlayıcının uygulamalarınıza erişimini sınırlamak içinandroid:exported="false"
ayarını yapın. Yalnızca sağlayıcıyla aynı kullanıcı kimliğine (UID) veya sağlayıcıyaandroid:grantUriPermissions
öğesi aracılığıyla geçici olarak erişim izni verilen uygulamalar bu kimliğe (UID) erişebilir.
Bu özellik API düzeyi 17'de kullanıma sunulduğundan, API düzeyi 16 ve altını çalıştıran tüm cihazlar bu özellik
"true"
olarak ayarlanmış gibi davranır.android:targetSdkVersion
değerini 17 veya daha yüksek bir değere ayarlarsanız API düzeyi 17 ve üstünü çalıştıran cihazlar için varsayılan değer"false"
olur.permission
özelliğiyle izinleri ayarlayarakandroid:exported="false"
uygulamasını ayarlayıp sağlayıcınıza erişimi yine de sınırlayabilirsiniz. -
android:grantUriPermissions
- Normalde içerik sağlayıcının verilerine erişim izni olmayanlara izin verilip verilmeyeceğine karar verilmesi,
readPermission
,writePermission
,permission
veexported
özelliklerinin getirdiği kısıtlamanın geçici olarak aşılması anlamına gelir.İzin veriliyorsa
"true"
, izin verilmiyorsa"false"
olur."true"
ise içerik sağlayıcının verilerine izin verilebilir."false"
değeri kullanılırsa izin yalnızca<grant-uri-permission>
alt öğelerinde listelenen veri alt kümelerine (varsa) verilebilir. Varsayılan değer"false"
olarak ayarlanmıştır.İzin vermek, bir uygulama bileşenine izinle korunan verilere tek seferlik erişim izni vermenin bir yoludur. Örneğin, bir e-posta iletisinde ek varsa, görüntüleyenin tüm içerik sağlayıcının verilerine bakma izni olmasa bile posta uygulaması, uygun görüntüleyiciyi açarak dosyayı açabilir.
Bu gibi durumlarda izin, bileşeni etkinleştiren
Intent
nesnesindekiFLAG_GRANT_READ_URI_PERMISSION
veFLAG_GRANT_WRITE_URI_PERMISSION
işaretleri tarafından verilir. Örneğin, posta uygulamasıFLAG_GRANT_READ_URI_PERMISSION
öğesiniContext.startActivity()
öğesine iletilenIntent
içine yerleştirebilir. İzin,Intent
içindeki URI'ye özgüdür.Bu özelliği etkinleştirirseniz bu özelliği
"true"
olarak ayarlayarak veya<grant-uri-permission>
alt öğelerini tanımlayarak kapsama dahil olan bir URI sağlayıcıdan silindiğindeContext.revokeUriPermission()
çağrısı yapın.Ayrıca
<grant-uri-permission>
öğesine de bakın. android:icon
- İçerik sağlayıcıyı temsil eden bir simge.
Bu özellik, resim tanımını içeren çekilebilir bir kaynağa referans olarak ayarlanır. Ayarlanmazsa, bunun yerine uygulamanın tamamı için belirtilen simge kullanılır. Daha fazla bilgi için
<application>
öğesininicon
özelliğine bakın. android:initOrder
- Aynı süreç tarafından barındırılan diğer içerik sağlayıcılara göre, içerik sağlayıcının örneklenme sırası. İçerik sağlayıcılar arasında bağımlılıklar olduğunda, her biri için bu özelliğin ayarlanması, içeriklerin bu bağımlılıkların gerektirdiği sırayla oluşturulduğundan emin olmanızı sağlar. Değer bir tamsayıdır ve ilk olarak daha yüksek sayılar başlatılır.
android:label
- Sağlanan içerik için kullanıcı tarafından okunabilir bir etiket.
Bu özellik ayarlanmazsa bunun yerine uygulamanın tamamı için ayarlanan etiket kullanılır. Daha fazla bilgi için
<application>
öğesininlabel
özelliğine bakın.Bu etiket genellikle bir dize kaynağına başvuru olarak ayarlanır. Böylece, kullanıcı arayüzündeki diğer dizeler gibi yerelleştirilebilir. Ancak uygulamayı geliştirirken kolaylık sağlaması açısından ham dize olarak da ayarlanabilir.
android:multiprocess
- Uygulama birden fazla işlemde çalışıyorsa bu özellik, içerik sağlayıcının birden fazla örneğinin oluşturulup oluşturulmayacağını belirler.
"true"
ise uygulama işlemlerinin her birinin kendi içerik sağlayıcı nesnesi vardır."false"
ise uygulamanın işlemleri yalnızca bir içerik sağlayıcı nesnesi paylaşır. Varsayılan değer"false"
olarak ayarlanmıştır.Bu işaretin
"true"
olarak ayarlanması, işlemler arası iletişimin ek yükünü azaltarak performansı iyileştirebilir ancak her işlemin bellek ayak izini de artırır. android:name
- İçerik sağlayıcıyı uygulayan sınıfın adı, yani
ContentProvider
alt sınıfı. Bu genellikle,"com.example.project.TransportationProvider"
gibi tam nitelikli bir sınıf adıdır. Bununla birlikte, kısaltma olarak adın ilk karakteri noktaysa<manifest>
öğesinde belirtilen paket adına eklenir.Varsayılan değer yoktur. Ad belirtilmelidir.
android:permission
- İstemcilerin, içerik sağlayıcının verilerini okumak veya yazmak için sahip olması gereken iznin adı. Bu özellik, hem okuma hem de yazma için tek bir izin belirlemenin kullanışlı bir yoludur. Ancak
readPermission
,writePermission
vegrantUriPermissions
özellikleri bundan daha önceliklidir.readPermission
özelliği de ayarlanırsa içerik sağlayıcıyı sorgulama erişimini 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 edinmek için uygulama manifesti genel bakışındaki İzinler bölümüne ve Güvenlik ipuçları bölümüne bakın.
android:process
- İçerik sağlayıcının çalıştığı sürecin adı. Normalde bir uygulamanın tüm bileşenleri, uygulama için oluşturulan varsayılan işlemde çalışır. Uygulama paketiyle aynı ada sahiptir.
<application>
öğesininprocess
özelliği, tüm bileşenler için farklı bir varsayılan ayarlayabilir. Ancak her bileşen, varsayılan değeri kendiprocess
özelliğiyle geçersiz kılarak uygulamanızı birden fazla işleme yayabilmenizi sağlar.Bu özelliğe atanan ad iki nokta üst üste (
:
) ile başlıyorsa ihtiyaç duyulduğunda uygulamaya özel yeni bir süreç oluşturulur ve etkinlik bu işlemde çalıştırılır.İşlem adı küçük harfle başlıyorsa etkinlik, izni olması koşuluyla bu ada sahip global bir işlemde çalışır. Bu, farklı uygulamalardaki bileşenlerin aynı işlemi paylaşmasına olanak tanıyarak kaynak kullanımını azaltır.
android:readPermission
İstemcilerin, içerik sağlayıcıyı sorgulamak için sahip olması gereken bir izin.
Sağlayıcı
android:grantUriPermissions
öğesini"true"
olarak ayarlarsa veya belirli bir istemci<grant-uri-permission>
alt öğesinin koşullarını karşılıyorsa istemci, içerik sağlayıcının verilerine geçici okuma erişimi elde edebilir.permission
vewritePermission
özelliklerine de bakın.android:syncable
- İçerik sağlayıcının kontrolündeki verilerin bir sunucudaki verilerle senkronize edilip edilemeyeceği. Mümkünse
"true"
, değilse"false"
olur. android:writePermission
İstemcilerin, içerik sağlayıcı tarafından kontrol edilen verilerde değişiklik yapması için gereken bir izin.
Sağlayıcı
android:grantUriPermissions
öğesini"true"
olarak ayarlarsa veya belirli bir istemci<grant-uri-permission>
alt öğesinin koşullarını karşılıyorsa istemci, içerik sağlayıcının verilerini değiştirmek için geçici yazma erişimi elde edebilir.permission
vereadPermission
özelliklerine de bakın.
- kullanıma sunulduğu tarih:
- API düzeyi 1
- şuna da bakabilirsiniz:
- İç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: 2023-10-18 UTC.
[]
[]