acceder a los contactos de la tarjeta SIM en android

necesito tener acceso a los primeros 10 contactos de la tarjeta del sim en mi teléfono. el código que he usado es el siguiente:

public class simcontacts extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Uri uri16 = Uri.parse("content://icc/adn/"); String[]SimContactsName = new String[250]; String[]SimContactsNumber = new String[250]; int count = 0; ContentResolver cr = getApplicationContext().getContentResolver(); Cursor cur = cr.query(uri16, null, null, null, null); if (cur.getCount() > 0) { while (cur.moveToNext()) { String id = cur.getString( cur.getColumnIndex(ContactsContract.Contacts._ID)); if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) { Cursor pCur = cr.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", new String[]{id}, null); while (pCur.moveToNext()) { String contact = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); String number = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); SimContactsName[count]=contact; SimContactsNumber[count]=number; count++; } pCur.close(); } } } TelephonyManager telMng = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); for (int i=0; i<10;i++) { Message=Message+SimContactsNumber[i]+"\n"; } Toast.makeText(this, Message, Toast.LENGTH_LONG).show(); } 

cuando lo probé en el teléfono, un incendio forestal de htc S, tengo todos los valores nulos. También lo probé con el teléfono contactos uri, ContactsContract.Contacts.CONTENT_URI, y funcionó bien. ¿Cómo puedo acceder a contactos SIM? ¿hay otro uri que debo usar?

Su código funciona perfectamente con el Uri :

 Uri uri16 =ContactsContract.Contacts.CONTENT_URI; 

Asegúrate de haber agregado los permisos de android en el manifiesto de Android, como por ejemplo: android.permission.READ_CONTACTS (utiliza permiso).

  • Leer la información de Contact usando File Descriptor en android
  • Cómo agregar un contacto a un grupo android
  • Android: ¿Cómo obtener la identificación de contacto por el número de teléfono?
  • ¿Cómo obtiene los miembros de un grupo de contacto?
  • Cómo acceder a contactos en mi programa android
  • Excepción de seguridad de Android al acceder a contactos
  • Recuperar contactos más rápidamente de la libreta de direcciones en android
  • Extraer el código del país del número de móvil
  • Cómo obtener el nombre y el apellido del propietario del teléfono Android?
  • ¿Cómo llamar a la lista de contactos de Android?
  • Obtener contactos sólo número móvil
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.