標籤:android style c class blog code
APN全稱是Access Point Name,中文即存取點,是通過手機上網時必須配置的一個參數,它決定了手機通過哪種接入方式來訪問網路。
android系統把所有的APN都儲存在資料庫中,資料庫絕對路徑:/data/data/com.android.providers.telephony/databases/telephony.db。
使用adb命令可以把該資料庫匯出查看:
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>
執行個體代碼:
//擷取所有apnUri uri = Uri.parse("content://telephony/carriers"); Cursor cr = getContentResolver().query(uri, null, null, null, null); //遍曆所有apnwhile(cr!=null && cr.moveToNext()){ // APN id String id = cr.getString(cr.getColumnIndex("_id")); // APN name String apn = cr.getString(cr.getColumnIndex("apn")); 。。。。} //擷取當前apnUri uri = Uri.parse("content://telephony/carriers/preferapn"); Cursor cr = getContentResolver().query(uri, null, null, null, null); //修改當前apnUri 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);
本文轉自:http://blog.163.com/[email protected]/blog/static/6715605020114234013308/