Android APN设置及获得手机号(转载)

来源:互联网 发布:java基础题目编程题 编辑:程序博客网 时间:2024/05/07 06:49

目前供职于电信,只做电信的业务,故列表中只有电信的APN信息

Java代码 复制代码
  1. /**
  2. * 电信APN列表
  3. * @author wudongdong
  4. *
  5. */  
  6. public class APNNET {   
  7.     public static String CTWAP="ctwap";   
  8.     public static String CTNET="ctnet";   
  9. }  

 

获得APN的类型

 

Java代码 复制代码
  1. /**
  2. * 获得APN类型
  3. * @author wudongdong
  4. *
  5. */  
  6. public class ApnUtil {   
  7.     private static Uri PREFERRED_APN_URI = Uri   
  8.      .parse("content://telephony/carriers/preferapn");   
  9.     /**
  10.       * get apntype
  11.       * @param context
  12.       * @return
  13.       */  
  14.     public static String getApnType(Context context){   
  15.          String apntype="nomatch";   
  16.          Cursor c = context.getContentResolver().query(PREFERRED_APN_URI,   
  17.                 null, null, null, null);   
  18.          c.moveToFirst();   
  19.          String user=c.getString(c.getColumnIndex("user"));   
  20.         if(user.startsWith(APNNET.CTNET)){   
  21.              apntype=APNNET.CTNET;   
  22.          }else if(user.startsWith(APNNET.CTWAP)){   
  23.              apntype=APNNET.CTWAP;   
  24.          }   
  25.         return apntype;   
  26.      }   
  27. }  


获得手机号码的话可以传IMSI码到指定接口,接口地址不方便说。

但可以透露一点,必须走CTWAP,这也是判断APN类型的原因

发现很多应用如果APN是走代理的话就不能联网,那么再介绍一下用APN设置网络的代理信息。

Java代码 复制代码
  1. Cursor c = context.getContentResolver().query(PREFERRED_APN_URI,   
  2.                     null, null, null, null);   
  3.              c.moveToFirst();   
  4.              String proxy=c.getString(c.getColumnIndex("proxy"));   
  5.             if (!"".equals(proxy) && proxy!=null) {   
  6.                  Properties prop = System.getProperties();   
  7.                  System.getProperties().put("proxySet", "true");   
  8.                  prop.setProperty("http.proxyHost", c.getString(c   
  9.                          .getColumnIndex("proxy")));   
  10.                  prop.setProperty("http.proxyPort", c.getString(c   
  11.                          .getColumnIndex("port")));   
  12.                  String authentication = c.getString(c.getColumnIndex("user"))   
  13.                          + ":" + c.getString(c.getColumnIndex("password"));   
  14.                  String encodedLogin = Base64.encode(authentication);   
  15.                  uc.setRequestProperty("Proxy-Authorization", " Basic "  
  16.                          + encodedLogin);   
  17.              }   
  18.              c.close();  
原创粉丝点击