2010-09-23 10 views
5

Se provi il Contact Manager fornito con Android 2.2 Froyo, ti darà accesso a tutti i contatti nel database sqlite tramite Contact ContentProvider. Ma se si scrive un app che non è com.android.contacts si ottiene solo l'accesso al tavolo ristretto a causa di questo codice qui:Perché alcuni contatti vengono censurati dalle app su Android?

http://www.google.com/codesearch/p?hl=en#cbQwy62oRIQ/res/values/unrestricted_packages.xml&q=unrestricted_packages&sa=N&cd=1&ct=rc

Se si tenta nessuno dei campioni come ContactManager o qualsiasi applicazione sul mercato non avrà accesso alla lista completa dei contatti solo l'accesso alla visualizzazione limitata.

La tabella riservata sembra contenere solo i contatti con numeri di telefono ed esclude alcuni contatti di Facebook. Non riesco a trovare alcuna documentazione sul motivo per cui un contatto sarebbe limitato ovunque nei documenti dello sviluppatore?

C'è un modo per aggirare questo oltre al rooting e all'apertura del db sqlite manualmente o utilizzando un firmware personalizzato?

risposta

1

C'è un modo per aggirare questo oltre al rooting e all'apertura del dl sqlite manualmente o utilizzando un firmware personalizzato?

No.

0

Sicurezza.

Sarebbe troppo facile per un'app canaglia fare qualcosa di malizioso (come mandare se stesso a tutti i tuoi contatti).

+0

no. Questo è lo scopo delle voci manifest del privilegio dell'applicazione. Questo sembra essere un modo per i produttori di firmware di eludere il sistema di privilegi delle app per impedire alle app di accedere al db del contatto. – radiofrequency

0

Hai specificato android.permission.READ_CONTACTS nel file manifest?

Cosa ti fa credere che questo sottoinsieme di contatti di Facebook pubblichi il loro numero di telefono nelle informazioni?

+0

sì, lo specifico nella mia applicazione. Immagino che non si tratti più di informazioni che i produttori di firmware possono impedire l'accesso ai contatti disponibili tramite il fornitore di contatti. Gli utenti della mia rubrica telefonica si lamentano spesso dei contatti che non sono disponibili nell'applicazione rispetto alla loro applicazione predefinita della rubrica. – radiofrequency

+0

@radiofrequency Questo è più che un po 'vecchio, ma sembra che ci sia il contrario. Non si tratta di limitare l'accesso che altrimenti sarebbe illimitato, si tratta di un accesso illimitato che altrimenti sarebbe limitato. Per quanto ne so, lo stato predefinito è per (utente?) I dati contrassegnati come limitati per essere (parzialmente) inaccessibili a meno che non sia concesso un permesso esplicito in quel file XML di risorse di sistema. Ciò consente agli sviluppatori di firmware di concedere l'accesso illimitato di dati sensibili a pacchetti di cui sanno di potersi fidare (il che potrebbe essere abusato, ma questa è un'altra questione). – JAB

Problemi correlati