Je suis en train d'utiliser le code suivant pour saisir un numéro de téléphone mobile au hasard des contacts:Obtenir les numéros de téléphone au hasard dans Android
ContentResolver cr = getContentResolver();
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, "DISPLAY_NAME = '" + "NAME" + "'", null, null);
cursor.moveToFirst();
String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phones = cr.query(Phone.CONTENT_URI, null, Phone.CONTACT_ID + " = " + contactId, null, null);
List numbers = new ArrayList();
while (phones.moveToNext()) {
String number = phones.getString(phones.getColumnIndex(Phone.NUMBER));
int type = phones.getInt(phones.getColumnIndex(Phone.TYPE));
switch (type) {
case Phone.TYPE_MOBILE:
numbers.add(number);
break;
}
}
Random randGen = new Random();
return (String) numbers.get(randGen.nextInt(numbers.size()));
Toutefois, l'exécution de ce code produit un accident sur la ligne 4, avec message indiquant "CursorIndexOutOfBoundsException: index 0 demandé, avec une taille de 0". Le crash semble provenir de la méthode cursor.getString(). Est-ce que quelqu'un sait où je vais mal? Cela utilise le ContactsContract dans Android 2.1. Eclipse ne donne aucune erreur.
Merci!