android之APN

APN全称是Access Point Name,中文即接入点,是经过手机上网时必须配置的一个参数,它决定了手机经过哪一种接入方式来访问网络。android

 

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"。ide

获取当前使用APN的uri地址为"content://telephony/carriers/preferapn"。spa

 

android当前apn保存在一个xml文件里,绝对路径:/data/data/com.android.providers.telephony/shared_prefs/preferred-apn.xml 。code

使用命令导出查看:xml

adb pull /data/data/com.android.providers.telephony/shared_prefs/preferred-apn.xml e:/

内容以下:blog

 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>

        <map>
              <long name="apn_id" value="2" />
    </map>

实例代码:utf-8

//获取全部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/get

相关文章
相关标签/搜索