0
点赞
收藏
分享

微信扫一扫

Android APN设置及获得手机号


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

Java代码


  /**
  * 电信APN列表
  * @author wudongdong
  *
  */
  public class APNNET {
  public static String CTWAP="ctwap";
  public static String CTNET="ctnet";
  }
  /**
  * 电信APN列表
  * @author wudongdong
  *
  */
  public class APNNET {
  public static String CTWAP="ctwap";
  public static String CTNET="ctnet";
  }获得APN的类型
  Java代码
  /**
  * 获得APN类型
  * @author wudongdong
  *
  */
  public class ApnUtil {
  private static Uri PREFERRED_APN_URI = Uri
  .parse("content://telephony/carriers/preferapn");
  /**
  * get apntype
  * @param context
  * @return
  */
  public static String getApnType(Context context){
  String apntype="nomatch";
  Cursor c = context.getContentResolver().query(PREFERRED_APN_URI,
  null, null, null, null);
  c.moveToFirst();
  String user=c.getString(c.getColumnIndex("user"));
  if(user.startsWith(APNNET.CTNET)){
  apntype=APNNET.CTNET;
  }else if(user.startsWith(APNNET.CTWAP)){
  apntype=APNNET.CTWAP;
  }
  return apntype;
  }
  }
  /**
  * 获得APN类型
  * @author wudongdong
  *
  */
  public class ApnUtil {
  private static Uri PREFERRED_APN_URI = Uri
  .parse("content://telephony/carriers/preferapn");
  /**
  * get apntype
  * @param context
  * @return
  */
  public static String getApnType(Context context){
  String apntype="nomatch";
  Cursor c = context.getContentResolver().query(PREFERRED_APN_URI,
null, null, null, null);
  c.moveToFirst();
  String user=c.getString(c.getColumnIndex("user"));
  if(user.startsWith(APNNET.CTNET)){
  apntype=APNNET.CTNET;
  }else if(user.startsWith(APNNET.CTWAP)){
  apntype=APNNET.CTWAP;
  }
  return apntype;
  }
  }

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

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

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

  Java代码

Cursor c = context.getContentResolver().query(PREFERRED_APN_URI,
  null, null, null, null);
  c.moveToFirst();
  String proxy=c.getString(c.getColumnIndex("proxy"));
  if (!"".equals(proxy) && proxy!=null) {
  Properties prop = System.getProperties();
  System.getProperties().put("proxySet", "true");
  prop.setProperty("http.proxyHost", c.getString(c
  .getColumnIndex("proxy")));
  prop.setProperty("http.proxyPort", c.getString(c
  .getColumnIndex("port")));
  String authentication = c.getString(c.getColumnIndex("user"))
  + ":" + c.getString(c.getColumnIndex("password"));
  String encodedLogin = Base64.encode(authentication);
  + encodedLogin);
  }
  c.close();

举报

相关推荐

0 条评论