APN全稱是Access Point Name,中文即接入點,是通過手機上網時必須配置的一個參數(shù),它決定了手機通過哪種接入方式來訪問網絡。 android系統(tǒng)把所有的APN都保存在數(shù)據(jù)庫中,數(shù)據(jù)庫絕對路徑:/data/data/com.android.providers.telephony/databases/telephony.db。 使用adb命令可以把該數(shù)據(jù)庫導出查看: adb pull /data/data/com.android.providers.telephony/databases/telephony.db e:/ 獲取所有的APN的uri地址為"content://telephony/carriers"。 獲取當前使用APN的uri地址為"content://telephony/carriers/preferapn"。 android當前apn保存在一個xml文件里,絕對路徑:/data/data/com.android.providers.telephony/shared_prefs/preferred-apn.xml 。 使用命令導出查看: adb pull /data/data/com.android.providers.telephony/shared_prefs/preferred-apn.xml e:/ 內容如下: <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <map> <long name="apn_id" value="2" /> </map> 實例代碼: //獲取所有apn Uri uri = Uri.parse("content://telephony/carriers"); Cursor cr = getContentResolver().query(uri, null, null, null, null); //遍歷所有apn while(cr!=null && cr.moveToNext()){ // APN id String id = cr.getString(cr.getColumnIndex("_id")); // APN name String apn = cr.getString(cr.getColumnIndex("apn")); 。。。。 } //獲取當前apn Uri uri = Uri.parse("content://telephony/carriers/preferapn"); Cursor cr = getContentResolver().query(uri, null, null, null, null); //修改當前apn Uri uri = Uri.parse("content://telephony/carriers/preferapn"); ContentResolver resolver = getContentResolver(); ContentValues values = new ContentValues(); values.put("apn_id", id); resolver.update(uri, values, null, null); |
|