android之APN


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>

實例代碼:

//獲取所有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);  

 

 

本文轉自:http://blog.163.com/yimigao@126/blog/static/6715605020114234013308/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM