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

相关文章
|
3月前
|
XML API Android开发
码农之重学安卓:利用androidx.preference 快速创建一、二级设置菜单(demo)
本文介绍了如何使用androidx.preference库快速创建具有一级和二级菜单的Android设置界面的步骤和示例代码。
92 1
码农之重学安卓:利用androidx.preference 快速创建一、二级设置菜单(demo)
|
3天前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
7 1
|
7天前
|
安全 搜索推荐 Android开发
Android vs. iOS:解锁智能手机操作系统的奥秘####
【10月更文挑战第21天】 在当今这个数字化时代,智能手机已成为我们生活中不可或缺的伙伴。本文旨在深入浅出地探讨两大主流操作系统——Android与iOS的核心差异、优势及未来趋势,帮助读者更好地理解这两个平台背后的技术哲学和用户体验设计。通过对比分析,揭示它们如何塑造了我们的数字生活方式,并展望未来可能的发展路径。无论您是技术爱好者还是普通用户,这篇文章都将带您走进一个充满创新与可能性的移动世界。 ####
15 3
|
29天前
|
Ubuntu Linux Android开发
termux+anlinux+Rvnc viewer来使安卓手机(平板)变成linux服务器
本文介绍了如何在Android设备上安装Termux和AnLinux,并通过这些工具运行Ubuntu系统和桌面环境。
98 2
termux+anlinux+Rvnc viewer来使安卓手机(平板)变成linux服务器
|
25天前
|
Web App开发 Android开发
利用firefox调试安卓手机端web
该教程详细介绍如何通过Firefox浏览器实现手机与电脑的远程调试。手机端需安装最新版Firefox,并按指定步骤设置完成;电脑端则需安装15版及以上Firefox。设置完成后,通过工具栏中的“远程调试”选项,输入手机IP地址即可连接。连接确认后,即可使用电脑端Firefox调试器调试手机上的Web信息。注意,调试前手机需提前打开目标网页。
41 2
|
10天前
|
Android开发 iOS开发 UED
安卓与iOS的较量:谁才是智能手机市场的王者?
本文将深入探讨安卓和iOS两大智能手机操作系统之间的竞争关系,分析它们各自的优势和劣势。通过对比两者在市场份额、用户体验、应用生态等方面的表现,我们将揭示出谁才是真正的市场领导者。无论你是安卓粉丝还是iOS忠实用户,这篇文章都将为你提供一些有趣的观点和见解。
|
2月前
|
Android开发
Android经典实战之Textview文字设置不同颜色、下划线、加粗、超链接等效果
本文介绍了 `SpannableString` 在 Android 开发中的强大功能,包括如何在单个字符串中应用多种样式,如颜色、字体大小、风格等,并提供了详细代码示例,展示如何设置文本颜色、添加点击事件等,助你实现丰富文本效果。
198 3
|
3月前
|
Java 网络安全 开发工具
UNITY与安卓⭐一、Android Studio初始设置
UNITY与安卓⭐一、Android Studio初始设置
|
2月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
137 0
|
4月前
|
XML Android开发 数据格式
Android 中如何设置activity的启动动画,让它像dialog一样从底部往上出来
在 Android 中实现 Activity 的对话框式过渡动画:从底部滑入与从顶部滑出。需定义两个 XML 动画文件 `activity_slide_in.xml` 和 `activity_slide_out.xml`,分别控制 Activity 的进入与退出动画。使用 `overridePendingTransition` 方法在启动 (`startActivity`) 或结束 (`finish`) Activity 时应用这些动画。为了使前 Activity 保持静止,可定义 `no_animation.xml` 并在启动新 Activity 时仅设置新 Activity 的进入动画。
84 12

热门文章

最新文章