Si vous voulez lire l'APN pour Android 4.2 et plus, ils sont un changement à faire. Je l'ai testé, et ça fonctionne.
Dans Android 4.1 et ci-dessus utilisent ceci:
Cursor c = getContentResolver().query(Uri.withAppendedPath(Telephony.Carriers.CONTENT_URI, "current"), null, null, null, null);
Et pour Android 4.2 et plus utiliser ce code:
private static final String[] APN_PROJECTION = {
Telephony.Carriers.TYPE, // 0
Telephony.Carriers.MMSC, // 1
Telephony.Carriers.MMSPROXY, // 2
Telephony.Carriers.MMSPORT // 3
};
Et cette ligne:
final Cursor apnCursor =SqliteWrapper.query(context, this.context.getContentResolver(), Uri.withAppendedPath(Carriers.CONTENT_URI, "current"), APN_PROJECTION, null, null, null);
Le SQLiteWrapperClass est caché (j'ai trouvé cette classe sur Internet).
import android.database.sqlite.SqliteWrapper;
Ya i essayé d'utiliser dans mon application et il jette cette erreur: 'java.lang.SecurityException: Pas d'autorisation pour écrire les paramètres APN: Ni l'utilisateur 10099 ni le processus en cours a android.permission.WRITE_APN_SETTINGS.' – toobsco42
ajouter la permission requise (http://developer.android.com/reference/android/Manifest.permission.html#WRITE_APN_S ETTINGS) au manifeste – Asahi
Lorsque j'ai essayé de l'ajouter au manifeste, seules les applications natives pouvaient ajouter cette autorisation. – toobsco42