Si desea leer el APN para Android 4.2 y más, es un cambio que hacer. Lo probé y funciona.
En Android 4.1 y el uso de este:
Cursor c = getContentResolver().query(Uri.withAppendedPath(Telephony.Carriers.CONTENT_URI, "current"), null, null, null, null);
Y para Android 4.2 y más utilizar este código:
private static final String[] APN_PROJECTION = {
Telephony.Carriers.TYPE, // 0
Telephony.Carriers.MMSC, // 1
Telephony.Carriers.MMSPROXY, // 2
Telephony.Carriers.MMSPORT // 3
};
Y esta línea:
final Cursor apnCursor =SqliteWrapper.query(context, this.context.getContentResolver(), Uri.withAppendedPath(Carriers.CONTENT_URI, "current"), APN_PROJECTION, null, null, null);
El SQLiteWrapperClass es oculto (encontré esta clase en Internet).
import android.database.sqlite.SqliteWrapper;
Ya he intentado usar esto en mi aplicación y se lanza este error: 'java.lang.SecurityException: No permission para escribir configuraciones APN: Ni el usuario 10099 ni el proceso actual tienen android.permission.WRITE_APN_SETTINGS. – toobsco42
agregue el permiso requerido (http://developer.android.com/reference/android/Manifest.permission.html#WRITE_APN_S ETTINGS) al manifiesto – Asahi
Cuando intenté agregarlo al manifiesto, dijo que solo las aplicaciones nativas pueden agregar este permiso. – toobsco42