Android ukida izravno pisanje u kontakte: razvojarima aplikacija naređeno je koristiti standardne intent-e

  • PublicPublic
  • 21 Oct, 2026
Android ukida izravno pisanje u kontakte: razvojarima aplikacija naređeno je koristiti standardne intent-e

Počevši od nadolazećeg izdanja Androida, aplikacije namijenjene toj novoj verziji gube mogućnost izravnog upisa podataka u popis kontakata uređaja pomoću dozvole WRITE_CONTACTS. Svaka pokušaja izravnog upisa putem operacija ContentProvidera ili sličnih mehanizama rezultirat će SecurityExceptionom ili odbijanjem pristupa. Kako bi se osigurala privatnost i dosljednost, razvojarima je potrebno preći na standardne intent-e za kontakte: ACTION_INSERT, ACTION_EDIT i ACTION_INSERT_OR_EDIT. Ovi intent-i ne zahtijevaju posebne dozvole i namijenjeni su kreiranju i izmjeni kontakata putem sučelja koje upravlja sustav, čime se osigurava sigurna i transparentna obrada korisničkih podataka.

Prije, ponašanje ovih intent-a za kontakte značajno se razlikovalo kod različitih proizvođača uređaja, što je dovodilo do nedosljednog korisničkog iskustva, poput gubitka podataka ili neočekivanog ponašanja pri spremanju. Nadolazeća verzija Androida standardizira to iskustvo, zahtijevajući da svi uređaji prate stroge smjernice. Kada aplikacija pokrene ove intent-e, sustav prikazuje uredan polustranični obrazac za nove zapise ili korisnicima omogućuje pretraživanje i ažuriranje postojećih kontakata. Korisnici mogu proširiti to u urednik cijele stranice za detaljne informacije. Ovaj standardizirani pristup uklanja potrebu za širokim dozvolama za većinu aplikacija, jer sustav sam obrađuje unos podataka, čime se smanjuje površina napada i povećava povjerenje korisnika u upravljanje kontaktima.

Za mali broj aplikacija čija je glavna funkcija upravljanje kontaktima, u Androidu 17 QPR2, planiranom za četvrti kvartal 2026. godine, uvest će se novo posebno dopuštenje za pristup aplikacijama pod nazivom MANAGE_CONTACTS. Ovo dopuštenje omogućuje širok pristup za čitanje, dodavanje, uređivanje i brisanje kontakata, računa i podataka People Directory, čime se u odgovarajućim scenarijima de facto uklanja potreba za oba dopuštenja WRITE_CONTACTS i READ_CONTACTS. Aplikacije koje traže ovo dopuštenje moraju podnijeti izjavu u Play Consoleu u kojoj objašnjavaju zašto standardni intenti nisu dovoljni za njihovu glavnu funkcionalnost. Ova mjera osigurava da samo aplikacije s stvarnom potrebom za širokim pristupom kontaktima mogu zaobići standardizirani proces temeljen na intentima.

Razvojnicima se također preporučuje razmatranje nove značajke People Directory, koja stiže u istom izdanju i omogućuje aplikacijama objavljivanje informacija o dostupnosti kontakata bez izravnog uređivanja korisničkih kontakata. Ovo je posebno relevantno za aplikacije koje su prethodno dodavale akcije "Pozovi putem" ili "Pošalji poruku putem" upisivanjem dodatnih zapisa u bazu podataka kontakata. Korištenjem People Directoryja, aplikacije mogu zadržati ove funkcije bez kršenja novih ograničenja za izravno mijenjanje kontakata. Ovaj pomak potiče modularniji pristup integraciji kontakata, u kojem aplikacije doprinose direktoriju, a ne mijenjaju osobni popis kontakata korisnika, čime se očuvava integritet korisničkih podataka, a istovremeno pružaju korisne opcije povezivanja.

Proces migracije uključuje identificiranje svih izravnih upisa u kontakte u kodozbi, na primjer onih koji koriste ContactsContract.RawContacts.CONTENT_URI ili metode applyBatch, te njihovo zamjenjivanje odgovarajućim intentima. Razvojnicima se preporučuje korištenje ACTION_INSERT za nove kontakte i ACTION_EDIT ili ACTION_INSERT_OR_EDIT za ažuriranja, pri čemu se opcionalni podaci, poput imena, telefonskih brojeva i fotografija, proslijeđuju putem Intent Extras. Za čitanje kontakata, Contact Picker, dostupan od Androida 17, ostaje preporučeno rješenje i ne zahtijeva dopuštenja. Aplikacije namijenjene starijim verzijama Androida zadržat će svoje trenutno ponašanje, ali novi standardizirani uređivač bit će dostupan svim aplikacijama u novom operativnom sustavu, čime se osigurava dosljedno korisničko iskustvo bez obzira na ciljni SDK aplikacije.