2010-09-23 28 views
5

Si vous essayez le gestionnaire de contacts fourni avec Android 2.2 Froyo, il vous donnera accès à tous les contacts de la base de données sqlite via Contact ContentProvider. Mais si vous écrivez une application qui ne com.android.contacts vous obtenez seulement accès à la table restreinte en raison de ce code ici:Pourquoi certains contacts sont-ils censurés à partir d'applications sur Android?

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

Si vous essayez l'un des échantillons comme ContactManager ou toute application sur le marché, il n'aura pas accès à la liste complète des contacts seulement l'accès à la vue restreinte.

La table restreinte semble contenir uniquement des contacts avec des numéros de téléphone et exclut certains contacts Facebook. Je ne trouve aucune documentation sur la raison pour laquelle un contact serait restreint n'importe où dans les documents du développeur?

Existe-t-il un moyen de contourner cela en plus de l'enracinement et de l'ouverture manuelle de la db sqlite ou de l'utilisation d'un micrologiciel personnalisé?

Répondre

1

Existe-t-il un moyen de contourner cela en plus de l'enracinement et de l'ouverture manuelle de la db sqlite ou de l'utilisation d'un micrologiciel personnalisé?

n °

0

Sécurité.

Serait trop facile pour une application escroc de faire quelque chose de malicieux (comme s'envoyer à tous vos contacts).

+0

pas. C'est le but des entrées de manifeste de privilège d'application. Cela semble être un moyen pour les fabricants de firmware de contourner le système de privilège de l'application pour empêcher les applications d'accéder à la base de données de contact. – radiofrequency

0

Avez-vous spécifié android.permission.READ_CONTACTS dans votre manifeste?

Qu'est-ce qui vous amène à croire que ce sous-ensemble de contacts Facebook publie son numéro de téléphone dans son info?

+0

oui je le précise dans mon application. Je suppose que ce n'est pas une question plus d'informations que les fabricants de firmware peuvent empêcher l'accès aux contacts disponibles via le fournisseur de contact. Les utilisateurs de mon application de répertoire se plaignent souvent des contacts qui ne sont pas disponibles dans l'application par rapport à leur application de répertoire par défaut. – radiofrequency

+0

@radiofrequency C'est plus qu'un peu vieux, mais vous semblez l'avoir à l'envers. Il ne s'agit pas de restreindre l'accès qui serait autrement illimité, mais d'un accès illimité qui serait autrement restreint. Pour autant que je sache, l'état par défaut est que les données (utilisateur?) Marquées comme restreintes soient (partiellement) inaccessibles sauf si une autorisation explicite est accordée dans ce fichier XML de ressources système. Cela permet aux développeurs de microprogrammes d'accorder un accès illimité aux données sensibles à des paquets qu'ils savent qu'ils peuvent approuver (ce qui pourrait être abusé, mais c'est une autre affaire). – JAB