Водичи за Андроид за почетнике, 4. део: Добављач садржаја



Ово упутство за Андроид разматра концепте добављача садржаја. То је важан градивни елемент Андроида, који омогућава размену података у Андроид систему.

У нашим претходним водичима за Андроид за почетнике разговарали смо о прва три градивна елемента Андроида: Активност , Намера и Услуге . Овај чланак је четврти у овој серији Водича за Андроид за почетнике и говори о добављачу садржаја, који је још једна врло важна компонента Андроид система.

Провајдер садржаја је посредник вашег Андроид система, који омогућава размену података између различитих Андроид апликација. Уђимо мало у детаље тога у овом водичу за Андроид.





Водич за Андроид за почетнике-4 Бонус: Преузмите код добављача садржаја овде . Желели бисте овај код након што прођете кроз водич! :)

[дл урл = ”#” цласс = ”еМодал еМодал-6 ″ титле =” Преузми код ”десц =” ”типе =” ”алигн =” ”фор =” довнлоад ”]



Водичи за Андроид: добављач садржаја

Добављач садржаја олакшава приступ централној складишту података или складишту како би омогућио размену података и манипулацију подацима у различитим апликацијама.

Ево неколико примера задатих добављача садржаја у АПИ-ју Андроид система:

Водичи за Андроид: Подразумевани добављачи садржаја у Андроид систему



Ови добављачи садржаја омогућавају апстракцију корисника из основне базе података. Генерално, добављачи садржаја користе СКЛите за складиштење основне базе података.

Узмимо увек користан пример добре старе Фацебоок апликације која нам је помогла да поједноставимо ствари и у претходним Водичима за Андроид!

Сви сте у неком тренутку свог живота на друштвеним мрежама поставили слику на своју Фацебоок временску линију, зар не! Како ви то радите?

Кликом на дугме Пхото на зиду долази се до галерије фотографија. Одатле можете одабрати фотографију за отпремање.

Прочитавши претходне чланке Андроид Туториалс серија , знате за активности и намере, дакле, знате да се то догађа:

Ваш Фацебоок зид је „АКТИВНОСТ“. Када кликнете на дугме за фотографију, преноси се „НАМЕРА“ која преноси поруку и отвара се „ДАВАЧ САДРЖАЈА“ (Фотогалерија). Фотографија се отпрема помоћу мрежног отпремања „СЕРВИЦЕ“.

Погледајте овај видео уживо да бисте сазнали како добављач садржаја ради у вашој Фацебоок апликацији.

Зашто Андроид систему требају добављачи садржаја?

Потреба за добављачима садржаја настаје јер база података креирана у једној апликацији није видљива другој апликацији.

Једноставно је креирање и чување базе података у различитим апликацијама помоћу СКЛите-а, међутим проблем је у томе што база података у Андроиду је приватна за апликацију која је креира . У Андроиду не постоји заједнички простор за складиштење којем свака апликација може да приступи. Стога, да би различите апликације користиле базу података, Андроид систему је потребан интерфејс који омогућава такву размену података између апликација и међупроцесних процеса. Овде добављач садржаја долази да се игра.

Да ли ми заиста треба добављач садржаја?

1) Ви не треба да развијате сопственог добављача ако желите приватну базу података за одређену апликацију (ова база података не би била доступна апликацијама осим оне која ју је креирала).

2) Ви међутим потребан вам је прилагођени добављач да пружи предлоге за прилагођену претрагу у сопственом апликационом систему.

3) Такође вам треба добављач садржаја за копирање и лепљење сложених података из ваше апликације у друге апликације.

Које операције подржава добављач садржаја?

Добављачи садржаја подржавају следеће основне операције:

један) Упит: Пита добављача садржаја за све објекте, на основу наведеног УРИ-ја.

2) Избриши: Брише наведене објекте из базе података добављача садржаја.

3) Ажурирање: Ажурира објекте у бази података.

4) Уметни: Убацује нови објекат у базу података.

Кораци за спровођење операције у добављачу садржаја

1. корак: Приступ добављачу садржаја

Објекат клијента ЦонтентРесолвер користи се за приступ подацима добављача садржаја. Комуницира са објектом добављача, који заузврат прихвата захтев за приступ подацима и враћа жељене резултате. Интерфејс за размену података који пружа добављач и објекат клијента добављача омогућава комуникацију између различитих процеса / апликација.

Апликација која треба да приступи бази података мора то да изјави и затражи дозволе у ​​својој манифестној датотеци. О овоме ће се детаљно разговарати у нашим наредним водичима за Андроид.

УРИ садржаја

УРИ садржаја је један од аргумената који се користи за идентификацију података код добављача. Има четири дела:

један) Шема: Шема за добављача садржаја има константну вредност: „садржај“.

2) Управа: То је симболично име добављача и јединствено је за сваког. Тако издвајамо жељеног добављача садржаја са листе толико много.

3) Путања: Пут помаже у разликовању потребних података од комплетне базе података . На пример, добављач садржаја евиденције позива разликује пропуштене позиве, примљене позиве итд. Користећи различите путање.

4) ИД: То није обавезна компонента и можда неће бити присутно у УРИ-ју, али ако постоји, требало би да буде нумеричко. На пример, ако желите да приступите одређеној музичкој датотеци од добављача медијског садржаја, навели бисте и ИД .

Процес

Користећи овлашћење добављача, ЦонтентРесолвер идентификује тачног добављача садржаја (јер је овлашћење јединствено за сваког добављача садржаја). Након тога, компонента путање УРИ-а користи се за одабир тачне (тражене) табеле података. У случају да постоји ИД, провајдер би знао који се тачно подаци траже.

УРИ су две врсте:

Поред тога, УРИ-и могу имати и ограничавајуће информације.

анонимни час у јави]

2. корак: Како доћи до података од добављача садржаја

Иако ЦонтентРесолвер сада има приступ табели података, не може да преузме потребне податке осим ако апликација то нема „Читање дозволе за приступ“ за тог одређеног добављача. Ова дозвола је дефинисана у датотеци манифеста сваког добављача садржаја.

Све то апликација (који жели да приступи овој бази података) мора да захтева ову дозволу.

Као што је већ поменуто у овом водичу за Андроид, могу се извршити четири операције помоћу добављача садржаја . Прећи ћемо сваки по један.

УПИТ

Сада сте приступили добављачу и имате дозволу за преузимање података од њега. Следећи корак је да саставите упит да бисте од добављача захтевали тражену радњу .

Ево аргумената који се користе током упита:

један) МРЖЊА : Ради тачно како је горе објашњено.

2) Пројекција: Упит треба врати скуп колона из целе табеле базе података . Ово је познато као пројекција. Доношење нулл вратиће све колоне, што је неефикасно.

3) Клаузула о избору: ДО филтер који декларише које редове треба вратити , форматиран као СКЛ ВХЕРЕ клаузула (искључујући саму ВХЕРЕ). Ако проследите нулу, вратиће се сви редови за дати УРИ.

На пример, ако у колону за претрагу адресара унесете абецеду (рецимо „П“), она ће вратити све детаље о контакту који почињу са „П“. Међутим, ако ништа не унесете у траку за претрагу, преузима се комплетна листа контаката (клаузула за избор је у таквим случајевима постављена на „нулл“).

4) Аргумент избора: У избор можете да укључите „?“, Који ће бити замењени вредностима из селецтионАргс, редоследом којим се појављују у избору.

5) СортОрдер: СКЛ ОРДЕР БИ клаузула (искључујући сам ОРДЕР БИ). Ако проследите нулу, доћи ће до резултата који могу бити неуређени.

ПРИМЕР КОДА за постављање упита:

  • Тражење телефонских бројева у Контактима
Курсор курсора = цонтентресолвер.куери (ЦонтацтсЦонтрацт.Цонтацтс.ЦОНТЕНТ_УРИ, нулл, нулл, нулл, нулл) инт цоунт = цурсор.гетЦоунт () иф (цоунт> 0) {Стринг цонтацтДетаилс = '' вхиле (цурсор.мовеТоНект ()) { Стринг цолумнИд = ЦонтацтсЦонтрацт.Цонтацтс._ИД инт цурсорИндек = цурсор.гетЦолумнИндек (цолумнИд) Стринг ид = цурсор.гетСтринг (цурсорИндек) Име низа = цурсор.гетСтринг (цурсор .гетЦолумнИндек (ЦонтацтсЦонтрацт.Цонтацтс.ДИСПЛАИ_НАМЕЦонтацтс.ДИСПЛАИ_НАМЕ инт. (цурсор.гетСтринг (цурсор .гетЦолумнИндек (ЦонтацтсЦонтрацт.Цонтацтс.ХАС_ПХОНЕ_НУМБЕР)))) иф (нумЦоунт> 0) {Цурсор пхонеЦурсор = цонтентресолвер.куери (ЦонтацтсЦонтрацт.ЦоммонДатаКиндс.Пхоне.ЦОНТЕНТ_УРИ, нулл, ЦоммонДатаКОНД. , нови Стринг [] {ид}, нулл) вхиле (пхонеЦурсор.мовеТоНект ()) {Стринг пхонеНо = пхонеЦурсор.гетСтринг (пхонеЦурсор .гетЦолумнИндек (ЦонтацтсЦонтрацт.ЦоммонДатаКиндс. Пхоне.НУМБЕР)) цонтацтДетаилс + = 'Наме:' + наме + ', Број телефона:' + пхонеНо + ''} пхонеЦурсор.цлосе ()}}}

ИНСЕРЦИЈА

Претпоставимо да желите да у свој адресар убаците нове контакте. ЦонтентВалуес објект користи се за ове уметања. Кључеви објекта ЦонтентВалуе и ступци добављача садржаја морају се подударати да би се то постигло. Ево примера за ово:

ПРИМЕР КОДА за уметање:

  • Операција је уметање новог уноса са именом „Рајникант“ и бројем „9988999888“
// Операција АрраиЛист опс = нев АрраиЛист () инт равЦонтацтИнсертИндек = опс.сизе () опс.адд (ЦонтентПровидерОператион.невИнсерт (РавЦонтацтс.ЦОНТЕНТ_УРИ) .витхВалуе (РавЦонтацтс.АЦЦОУНТ_ТИПЕ, нуллуецтс. ()) опс.адд (ЦонтентПровидерОператион .невИнсерт (Дата.ЦОНТЕНТ_УРИ) .витхВалуеБацкРеференце (Дата.РАВ_ЦОНТАЦТ_ИД, равЦонтацтИнсертИндек) .витхВалуе (Дата.МИМЕТИПЕ, СтруцтуредНаме.ЦОНТЕНТ_ИТЕМ_ТВАМЕ.Д. ) опс.адд (ЦонтентПровидерОператион.невИнсерт (Дата.ЦОНТЕНТ_УРИ) .витхВалуеБацкРеференце (Дата.РАВ_ЦОНТАЦТ_ИД, равЦонтацтИнсертИндек) .витхВалуе (Дата. , Пхоне.ТИПЕ_МОБИЛЕ) .буилд ()) гетЦонтентРесолвер (). АпплиБатцх (ЦонтацтсЦонтрацт.АУТХОРИТИ, опс)

АЖУРИРАЊЕ

За ажурирање добављача садржаја користе се следећи аргументи:

један) МРЖЊА: УРИ добављача садржаја

2) ЦонтентВалуес: Садржи вредности које би замениле постојеће податке.

3) Клаузула о избору: Ово може помоћи у одабиру одређених записа које ћете ажурирати

4) Аргумент избора: У избор можете да укључите „?“, Који ће бити замењени вредностима из селецтионАргс, редоследом којим се појављују у избору.

Још једном, кључеви ЦонтентВалуес објекта морају се подударати са колонама у добављачу садржаја у супротном, ажурирање се не би догодило.

ПРИМЕР КОДА ЗА Ажурирање:

  • Ажурирање броја телефона чији је назив „Рајникант“
Стринг вхере = ЦонтацтсЦонтрацт.Дата.ДИСПЛАИ_НАМЕ + '=? 'Стринг [] парамс = нев Стринг [] {„Рајникант“} АрраиЛист опс = нев АрраиЛист () опс.адд (ЦонтентПровидерОператион.невУпдате (ЦонтацтсЦонтрацт.Дата.ЦОНТЕНТ_УРИ) .витхСелецтион (вхере, парамс) .витхВалуе (ЦонтацтсЦонтрацтКонтацтКандрацт. Пхоне.НУМБЕР, “9876543210”) .буилд ()) гетЦонтентРесолвер (). АпплиБатцх (ЦонтацтсЦонтрацт.АУТХОРИТИ, опс)

БРИСАЊЕ

Брисање користи исте аргументе као и упдате, са изузетком ЦонтентВалуес аргумента, који није потребан јер неће бити замењених вредности.

ПРИМЕР КОДА ЗА Брисање:

  • Избришите контакт чији је назив „Рајникант“
Стринг вхере = ЦонтацтсЦонтрацт.Дата.ДИСПЛАИ_НАМЕ + '=? 'Стринг [] парамс = нев Стринг [] {“Рајникант”} АрраиЛист опс = нев АрраиЛист () опс.адд (ЦонтентПровидерОператион.невДелете (ЦонтацтсЦонтрацт.РавЦонтацтс.ЦОНТЕНТ_УРИ) .витхСелецтион (вхере, парамс) .буилд ()) гетверон ) .апплиБатцх (ЦонтацтсЦонтрацт.АУТХОРИТИ, опс)

У случају рада Уметање, УРИ мора бити заснован на директоријуму. У свим осталим случајевима, УРИ могу бити засновани на ИД-у или на директоријуму.

Надамо се Водич за Андроид за почетнике: 5. део није било превише тешко за разумевање! О добављачима садржаја разговараћемо више у наредним водичима за Андроид. Уживајте у учењу основа до тада!

Да ли сумњате у овај Андроид туториал? Питајте нас.

Срећно учење!

Следећи ресурси су коришћени за стварање овог водича за Андроид! Званични програмери за Андроид , Едурека.ин

Можда ће вам се свидети и ови повезани постови: