<sağlayıcı>

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ızda android: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ı uygulayan ContentProvider alt sınıfının adıdır

Varsayı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 kendi enabled ö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çin android:exported="false" ayarını yapın. Yalnızca sağlayıcıyla aynı kullanıcı kimliğine (UID) veya sağlayıcıya android: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 ayarlayarak android: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 ve exported ö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 nesnesindeki FLAG_GRANT_READ_URI_PERMISSION ve FLAG_GRANT_WRITE_URI_PERMISSION işaretleri tarafından verilir. Örneğin, posta uygulaması FLAG_GRANT_READ_URI_PERMISSION öğesini Context.startActivity() öğesine iletilen Intent 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ğinde Context.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> öğesinin icon ö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> öğesinin label ö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 ve grantUriPermissions ö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> öğesinin process özelliği, tüm bileşenler için farklı bir varsayılan ayarlayabilir. Ancak her bileşen, varsayılan değeri kendi process ö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 ve writePermission ö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 ve readPermission özelliklerine de bakın.

kullanıma sunulduğu tarih:
API düzeyi 1
şuna da bakabilirsiniz:
İçerik sağlayıcılar