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);

  uc.setRequestProperty("Proxy-Authorization", " BASIC "

  + encodedLogin);

  }

  c.close();

相关文章
|
8天前
|
监控 安全 Android开发
【新手必读】Airtest测试Android手机常见的设置问题
【新手必读】Airtest测试Android手机常见的设置问题
|
8天前
|
机器学习/深度学习 人工智能 Android开发
安卓智能手机操作系统演化史
【2月更文挑战第5天】 本文通过对安卓智能手机操作系统的演化历程进行探讨,分析了安卓系统从诞生至今的发展脉络和关键技术革新,从最初的版本到如今的最新版本,探讨了其在移动互联网时代的重要作用,以及未来可能的发展方向。
|
3天前
|
数据库 Android开发
Android 通过升级SettingsProvider数据强制覆盖用户的设置项
Android 通过升级SettingsProvider数据强制覆盖用户的设置项 【5月更文挑战第7天】
20 5
|
8天前
|
存储 Java Android开发
Android系统 设置第三方应用为默认Launcher实现和原理分析
Android系统 设置第三方应用为默认Launcher实现和原理分析
84 0
|
16小时前
|
监控 安全 数据安全/隐私保护
如何通过手机设置苹果账户的双重认证
如何通过手机设置苹果账户的双重认证
5 1
|
2天前
|
存储 数据安全/隐私保护
苹果手机如何设置邮箱
苹果手机如何设置邮箱
6 0
|
7天前
|
Shell Android开发
Android设置语言
Android设置语言
14 1
|
8天前
|
Java Shell Android开发
Android11 有线网和wifi优先级设置
Android11 有线网和wifi优先级设置
18 0
|
8天前
|
Java Android开发
Android 设置系统时区的源码追踪
Android 设置系统时区的源码追踪
15 1
|
8天前
|
网络协议 安全 Linux
如何使用Android手机通过JuiceSSH远程访问本地Linux服务器
如何使用Android手机通过JuiceSSH远程访问本地Linux服务器