转载请注明出处:http://blog.csdn.net/lastsweetop/archive/2010/02/10/5304574.aspx
目前供职于电信,只做电信的业务,故列表中只有电信的APN信息
/**
* 电信APN列表
* @author wudongdong
*
*/
public class APNNET {
public static String CTWAP="ctwap";
public static String CTNET="ctnet";
}
获得APN的类型
/**
* 获得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设置网络的代理信息。
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();
分享到:
相关推荐
Android 手机 APN 设置 APN(Access Point Name)是移动网络中的一个重要概念,它是指移动网络中的一个访问点名称,用于标识移动网络中的一个访问点。Android 手机中的 APN 设置是指在 Android 手机中设置移动网络...
在Android系统中,APN(Access Point Name)是设置数据连接的关键配置,它定义了设备如何连接到互联网或移动数据网络。APN包含了运营商提供的网络接入点信息,比如网络类型(2G、3G、4G、5G)、用户名、密码、服务器...
在Android系统中,APN(Access Point Name,接入点名称)是用于移动设备连接网络的重要配置,它定义了手机如何连接到互联网,包括使用的网络类型(如GPRS、3G、4G或5G)、数据服务提供商以及相关认证信息。...
在Android系统中,APN(Access Point Name)是用于配置移动数据网络连接的重要设置,它定义了设备如何连接到互联网,特别是通过蜂窝数据。APN设置包括运营商、用户名、密码、代理服务器、端口等信息,对于使用特定...
当Android手机出现无法修改或保存APN设置的情况时,原因往往在于系统默认的APN配置与目标网络环境存在差异。例如,当使用了国外运营商定制的ROM时,其内置的APN配置可能与国内运营商的要求不符,导致用户自定义的APN...
本项目"android中的APN开发"显然是一个教学或示例应用,名为"MyApnDemo",旨在教给开发者如何在Android平台上创建、修改和管理APN设置。通过这个应用,开发者可以学习如何编写代码来实现以下功能: 1. **读取APN...
在Android系统中,APN设置用于定义数据连接的类型、网络速度、安全设置等,比如2G、3G、4G或5G的数据连接,以及是否启用彩信和互联网服务。在某些情况下,用户可能需要手动切换APN以优化网络性能或者解决特定服务的...
在Android系统中,APN(Access Point Name)是用于设置移动数据网络连接的关键参数,它定义了设备如何连接到互联网,通常包括网络运营商、数据服务类型等信息。本模块主要探讨的是如何在Android应用程序中通过代码来...
Android 全面解析 APN APN(Access Point Name)是 GPRS 背bone 中的一个参考点,指向一个 GGSN(Gateway GPRS Support Node)。GGSN 是一个核心网络设备,负责将用户的数据流量转发到互联网上。APN 是一个字符串,...
Android APN 开发流程分析 Android APN 开发流程分析是指 Android 操作系统中数据连接的实现过程,主要涉及到数据连接的建立、维护和管理。以下是 Android APN 开发流程分析的关键知识点: 1. 数据连接流程分析 ...
Android 获取 APN 列表的系统信息 Android 系统中对于 APN 的网络 API 没有公开,但是我们可以通过阅读源代码,然后进行数据库操作,系统会自动监听数据库的变化,从而实现开启或者关闭 APN。 APN(Access Point ...
本文将详细介绍如何在Android应用中获取本机手机号及服务运营商。 首先,获取本机手机号码通常需要权限声明。在AndroidManifest.xml文件中添加以下权限: ```xml <uses-permission android:name="android....
在 Android 系统中,APN(Access Point Name)是手机上网时必须配置的一个参数,它决定了手机通过哪种接入方式来访问网络。APN 保存在数据库中,数据库绝对路径为 `/data/data/...
由于Android的APN配置信息存储在一个文本文件中,通常命名为“apn.conf”或“apns-conf.xml”,而WP8系统则需要在系统设置内手动创建每个APN条目,这在APN数量众多的情况下非常不便。因此,有一个工具或方法能将...
不同的运营商可能有不同的APN设置,用户通常可以在手机的设置中手动调整,但通过小部件实现一键切换则更加便捷。 创建这样的小部件,我们首先需要在Android Studio中创建一个新的Android项目,选择“App Widget”...
Android AT命令与APN开发流程分析
### Android的APN开发源码分析 #### 一、Android数据连接原理 Android的数据连接机制主要是基于PPP(Point-to-Point Protocol)的方式实现的。PPP协议是一种广泛使用的串行链路通信协议,它允许用户通过拨号或其他...
本文实例讲述了Android基于APN获取手机号的方法。分享给大家供大家参考。具体如下: 之前很多人说无法完全获取手机号,是因为现在有的卡不能获取,有的卡能获取,现在我们可以换一种思路来考虑问题,就是用APN的方式...