1. Kontent-provayder nima? Ichki provayderlar


Download 67.5 Kb.
bet2/4
Sana04.10.2023
Hajmi67.5 Kb.
#1691872
1   2   3   4
Bog'liq
Kontent-provayder

2.Ichki provayderlar.


Android o'rnatilgan kontent-provayderlardan foydalanadi ( android.provider to'plami ). Kontent provayderlarining qisman ro'yxati:

  • Brauzer

  • CallLog

  • Kontaktlar

    • Odamlar

    • Telefonlar

    • Fotosuratlar

    • Guruhlar

  • MediaStore

    • Ovoz

      • Albomlar

      • Rassomlar

      • Janrlar

      • Pleylistlar

    • Tasvirlar

      • Eskizlar

    • Video

  • Sozlamalar

Ma'lumotlar bazalari iyerarxiyaning yuqori darajalarida, jadvallar esa quyi darajalarda joylashgan. Masalan, Browser, CallLog, Contacts, MediaStore va Settings bu provayder shaklida joylashgan alohida SQLite ma'lumotlar bazalari. Odatda, ushbu SQLite ma'lumotlar bazalari JB kengaytmasiga ega va ularga faqat amaliy dastur paketidan kirish mumkin. Ushbu to'plamdan tashqarida ma'lumotlar bazasiga har qanday kirish kontent-provayder interfeysi orqali amalga oshiriladi.

3.O'zingizning kontent-provayderingizni yaratish.


O'zingizning kontent-provayderingizni yaratish uchun mavhum ContentProvider sinfidan meros olishingiz kerak :

public class MyContentProvider extends ContentProvider {


}
Sinf mavhum usullari amalga oshirish kerak so'rog'ini () , Insert () , yangilash () , o'chirish () , GetType () , onCreate () . An'anaviy ma'lumotlar bazasini yaratish bilan ba'zi o'xshashliklar mavjud.
Shuningdek, u provayder yorlig'i yordamida ism va vakolatlarning atributlari bilan ro'yxatdan o'tkazilishi kerak . Rasmiylari tegi bazasi URI yo'lini aniqlash uchun ishlatiladi ContentResolver bilan ta'sir o'tkazish uchun ma'lumotlar bazasini topishingiz mumkin. Ushbu yorliq noyob bo'lishi kerak, shuning uchun boshqa ilovalar bilan chalkashmaslik uchun paket nomidan foydalanish tavsiya etiladi, masalan:

android:name:".MyContentProvider"


android:authorities="ru.alexanderklimov.provider.notepad" />
Kontent-provayderning manbasi saytning domen nomi bilan bir xil. Agar manba allaqachon ro'yxatdan o'tgan bo'lsa, ushbu kontent-provayderlar tegishli manba prefiksidan boshlab ko'priklar bilan ifodalanadi:

content://ru.alexanderklimov.provider.notepad/


Shunday qilib, veb-saytlar kabi kontent provayderlari boshlang'ich URL vazifasini bajaradigan asosiy domen nomiga ega.
Shuni ta'kidlash kerakki, Android-da ishlatiladigan kontent-provayderlar to'liq bo'lmagan manba nomiga ega bo'lishi mumkin. To'liq manba nomidan faqat uchinchi tomon kontent-provayderlari bilan foydalanishni tavsiya etamiz. Shu sababli, ba'zida kontaktlar kabi bitta so'zli tarkib ko'rsatuvchi provayderlarni uchratishingiz mumkin , ammo bunday tarkib provayderining to'liq nomi com.google.android.contacts .
Kontent-provayderlar, shuningdek, ma'lumotlarni topish va ular bilan ishlash uchun REST-ga o'xshash ko'priklardan foydalanadilar. Yuqorida tavsiflangan ro'yxatdan o'tishda, NotePadProvider ma'lumotlar bazasidagi katalog yoki yozuvlar to'plamini belgilash uchun mo'ljallangan yagona resurs identifikatori shunday nomlanadi:

content://ru.alexanderklimov.provider.notepad/notes


Bitta yozuvni aniqlash uchun URI quyidagicha ko'rinadi:

content://ru.alexanderklimov.provider.notepad/notes/#


# Belgisi ma'lum bir yozuvga mos keladi (jadval qatori). Quyida kontent-provayderlarda mavjud bo'lishi mumkin bo'lgan yana bir nechta URI namunalari keltirilgan:
content://media/internal/images
content://media/external/images
content://contacts/people/
content://contacts/people/23
Kontent provayderlarining tarkibi: // media va content: // aloqalari bu erda to'liq emasligiga e'tibor bering. Buning sababi shundaki, ushbu kontent-provayderlar uchinchi tomon emas va Android tomonidan boshqariladi.

Download 67.5 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling