Android基于APN获取手机号的方法
程序员文章站
2024-02-08 10:38:28
本文实例讲述了android基于apn获取手机号的方法。分享给大家供大家参考。具体如下:
之前很多人说无法完全获取手机号,是因为现在有的卡不能获取,有的卡能获取,现在我们...
本文实例讲述了android基于apn获取手机号的方法。分享给大家供大家参考。具体如下:
之前很多人说无法完全获取手机号,是因为现在有的卡不能获取,有的卡能获取,现在我们可以换一种思路来考虑问题,就是用apn的方式。请看代码:
apnnet.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的类型 /** * 获得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; } }
java代码如下:
/** 获得手机号码的话可以传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程序设计有所帮助。
推荐阅读
-
Android基于APN获取手机号的方法
-
C#基于OLEDB获取Excel文件表结构信息的方法
-
android获取ibeacon列表的方法
-
Android开发 获取屏幕宽高及尺寸的方法
-
Android获取手机SIM卡运营商信息的方法
-
获取Android的Java源代码并在Eclipse中关联查看的最新方法
-
获取Android的Java源代码并在Eclipse中关联查看的最新方法
-
Android-webview和js脚本语言交互的时候怎么获取js方法的返回值
-
android获取当前运行Activity名字的方法
-
Android Studio 基础之获取Wifi 的状态,设置 Wifi 的开关状态,并监听 Wifi 的状态变化方法整理