0

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.

  1. -je ouvrir mon application
  2. 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

  1. -je ouvrir mon application
  2. De mon application, j'ouvre un Intent pour ajouter un nouveau contact sur l'appareil
  3. ajouter un nouveau contact ou je ferme l'activité sans ajouter le contact
  4. 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.

+0

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

+0

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

+0

test sur un autre appareil, c'est peut-être un bug dans votre téléphone – marmor

Répondre

0

(Pour être complet, je vais en faire une réponse)

Cela pourrait être un bug de l'appareil, essayez le même code sur un autre appareil.

+0

J'ai essayé sur Samsung S2 (Android 4.2) et ASUS (Android 6) et mon code fonctionne. Il semble vraiment être un bug Huawei P8 – MDP