7
votes

Android: Comment accéder à la table de contact SIM à l'aide du SDK?

J'essaie d'utiliser cette requête pour lire les contacts sur la carte SIM.

java.lang.NullPointerException
    at android.os.Parcel.readException(Parcel.java:1224)
    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:160)
    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114)
    at android.content.ContentProviderProxy.bulkQuery(ContentProviderNative.java:369)
    at android.content.ContentProviderProxy.query(ContentProviderNative.java:388)
    at android.content.ContentResolver.query(ContentResolver.java:202)
    at android.app.Activity.managedQuery(Activity.java:1502)
    at com.example.delirious.delirio.onCreate(delirio.java:38)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2544)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)
    at android.app.ActivityThread.access$2200(ActivityThread.java:126)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1932)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:123)
    at android.app.ActivityThread.main(ActivityThread.java:4595)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:521)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
    at dalvik.system.NativeStart.main(Native Method)


5 commentaires

Contenu: // ICC / ADN ne fait pas partie du SDK Android.


Ensuite, encore une fois, ce qui fait partie de l'Android SDK et donne accès aux contacts SIM? Le code a été inspiré par groups.google.com/group/android-developers / BROWSE_THTHEAD / THH EAD / ... : L'auteur utilise le contenu: // ICC / ADN et revendications, il peut lire des contacts (et insérer, mais ne les supprimer). En outre, remplacer le contenu: // ICC / ADN avec gibberish Like Content: // ICC / Asdasd provoque une exception différente, quelque chose comme "Uri Inconnu": cela signifie que le contenu: // ICC / ADN a une signification.


Les mêmes œuvres sur l'émulateur Android, pas sur un vrai téléphone. Le contenu de l'URIS: // ICC / FDN et contenu: // _CC / SDN fonctionne sur l'émulateur et le téléphone


Il suffit de regarder ce lien Stackoverflow.com/Questtions/15562790/... Ce code fonctionne bien


Dans le fournisseur de glace -> et (numéro de numérotation abrégé), FDN (numéro de numérotation fixe), SDN (numéro de numérotation de service)


3 Réponses :


2
votes

Je l'ai eu, xxx

et ensuite, pour (...) {...}, vous savez


2 commentaires

Curseur mcursor = context.getcontentresolver (). Query (Uri, NULL, NULL, NULL, NULL); provoque la même exception dans ce cas aussi ...


OK, c'est peut-être les problèmes d'environnement, vous devez obtenir l'état de la carte SIM dans ("non connu" || "prêt"). Avant d'exécuter cela, veuillez redémarrer votre appareil.



8
votes

J'ai utilisé le code suivant pour obtenir les détails Simcard..it fonctionne bien xxx

Ici, le nom, IDID, le numéro correspond aux noms de colonne de la table SIMCARD


2 commentaires

Êtes-vous sûr que le contenu URI restera la même chose dans les prochains versions?


Et si je veux supprimer le contact présent dans la carte SIM?



2
votes

Je viens de mettre en œuvre un petit morceau de code utilisé pour afficher une liste de contacts dans la carte SIM. J'espère que cela peut vous aider xxx


1 commentaires

Et si je veux supprimer le contact présent dans la carte SIM?