Android基于APN获取手机号的方法
程序员文章站
2022-06-29 09:11:13
本文实例讲述了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程序设计有所帮助。
上一篇: JavaScript 脚本将当地时间转换成其它时区
下一篇: 红薯食品大家都知道哪些