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

本文详细介绍了如何获取并使用电信APN信息,包括CTWAP和CTNET,以及如何通过APN设置网络代理信息,确保应用能够正常联网。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前供职于电信,只做电信的业务,故列表中只有电信的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列表
 * @author wudongdong
 *
 */
public class APNNET {
 public static String CTWAP="ctwap";
 public static String CTNET="ctnet";
}

获得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. }
/**
 * 获得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代码 复制代码
  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();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值