Mobilne Aplikacie | 12.5.2020 11:00 | Kontakty
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Prednáška ukazuje, ako v Android aplikácii čítať kontakty z databázy kontaktov cez ContentResolver a kurzor. Najprv sa z hlavnej tabuľky prečíta ID a zobrazované meno, potom sa podľa počtu telefónov dotazom na Common Data Kinds (Phone CONTENT_URI) vyberú telefónne čísla patriace k danému kontaktu a spoja sa do textu. Spomenutý je aj skratkový spôsob vyžiadania oprávnení v onCreate bez kontroly ich udelenia, ktorý nie je celkom korektný. Druhá časť sa venuje priamemu vkladaniu kontaktov bez intentu, pričom sa používa dávka operácií (ContentProviderOperation v ArrayListe) zapuzdrená ako transakcia. Dávka zaručuje integritu údajov, zrýchľuje zápis a šetrí batériu, keďže prístup k cudziemu content provideru sa vyžiada len raz.
- - Kontakty sa čítajú dotazom cez ContentResolver, ktorý vráti kurzor prechádzajúci tabuľku kontaktov.
- - Z hlavnej tabuľky sa čítajú ID kontaktu a zobrazované meno, pričom stĺpce sa určujú cez getColumnIndex.
- - Telefónne čísla sa získavajú z hlbšej tabuľky cez Phone CONTENT_URI s filtrom podľa ID kontaktu.
- - Vyžiadanie oprávnení bez kontroly ich udelenia je skratka pre lenivého programátora a nie je celkom korektné.
- - Priame vkladanie kontaktov (bez intentu) vyžaduje zápis do dvoch tabuliek, preto sa operácie spájajú do transakcie.
- - Dávka ContentProviderOperation (ArrayList, newInsert, withValueBackReference, build) zaručuje integritu, rýchlosť a nižšiu spotrebu energie.
- - Zdieľanie kontaktov do smartfónov zamestnancov je praktický dôvod pre priamy zápis do databázy kontaktov.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky