Je rencontre un comportement étrange lors du test de mon application sur Huawei P8. Tout fonctionne bien sur les émulateurs (Android version 4, 5, 6, 7) et sur ASUS (Android 6) et Samsung Galaxy S2 (Android 4.2).contentResolver.query (ContactsContract.Contacts.CONTENT_URI ...) return 0 count Curseur si appelé après Intent.ACTION_INSERT
Les étapes suivantes fonctionnent à la fois sur un périphérique physique et sur des émulateurs. Après avoir appelé contentResolver.query()
je reçois un curseur avec tous les contacts de mon appareil.
- -je ouvrir mon application
- J'appelle
contentResolver.query(ContactsContract.Contacts.CONTENT_URI...);
Les étapes suivantes fonctionnent partout sauf sur mon Huawei P8; avec mon Huawei P8, et seulement avec elle, je reçois un 0 nombre curseur
- -je ouvrir mon application
- De mon application, j'ouvre un
Intent
pour ajouter un nouveau contact sur l'appareil - ajouter un nouveau contact ou je ferme l'activité sans ajouter le contact
- J'appelle
contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
Voici comment je reçois les contacts sur l'appareil:
ContentResolver contentResolver = getBaseContext().getContentResolver();
Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
Voilà comment j'ouvre, de mon application, l'activité d'ajouter un nouveau contact sur l'appareil
Intent intent = new Intent(Intent.ACTION_INSERT, ContactsContract.Contacts.CONTENT_URI);
intent.putExtra("finishActivityOnSaveCompleted", true);
startActivityForResult(intent, 101);
Il est semble que après avoir appelé new Intent(Intent.ACTION_INSERT, ContactsContract.Contacts.CONTENT_URI)
la table de contact est « verrouillé ».
Dois-je «fermer» l'intention de façon à pouvoir interroger ContactsContract.Contacts.CONTENT_URI
?
IMPORTANT: si, par exemple, au lieu de Intent.ACTION_INSERT
j'appelle Intent.ACTION_CALL
Je n'ai aucun problème et je peux interroger avec succès ContactsContract.Contacts.CONTENT_URI
. Donc, le problème est "appelant" Intent.ACTION_INSERT
et après la requête ContactsContract.Contacts.CONTENT_URI
sur Huawei P8.
Merci à l'avance.
pouvez-vous constamment recréer ce comportement? Cela semble très étrange ... que se passe-t-il si vous retardez la requête de quelques secondes après le retour de l'intention d'insertion? – marmor
Oui, je suis constamment capable de recréer ce comportement! J'ai également essayé d'attendre près d'une minute avant de faire une requête sur ContactsContract.Contacts.CONTENT_URI, mais je continue à obtenir un 0 Cursor – MDP
test sur un autre appareil, c'est peut-être un bug dans votre téléphone – marmor