通过反射机制,获得双卡双待机器的IMEI、IMSI、电话号码。
来源:互联网 发布:php继承一个普通类 编辑:程序博客网 时间:2024/06/05 17:18
在android 5.0之前,获得双卡相关信息,非常麻烦,不同的平台,有不同的实现方法,原生android不支持。
从android5.0开始,原始android已经支持双卡双待,例如IMEI信息:可以通过:方法实现如下:
public String getImei(int slotId) {637 long[] subId = SubscriptionManager.getSubId(slotId);638 try {639 return getSubscriberInfo().getImeiForSubscriber(subId[0]);640 } catch (RemoteException ex) {641 return null;642 } catch (NullPointerException ex) {643 return null;644 }645 }
但是直接调用的发现,没有此方法。
仔细查看,发现,这个是隐函数,看说明:
/**628 * Returns the IMEI. Return null if IMEI is not available.629 *630 * <p>Requires Permission:631 * {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}632 *633 * @param slotId of which deviceID is returned634 */635 /** {@hide} */
那么直接反射法调用吧:
TelephonyManager manager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
Class clazz = manager.getClass();
Method getImei=clazz.getDeclaredMethod("getImei",int.class);//(int slotId)
//获得IMEI 1的信息:
getImei.invoke(manager, 0);
//获得IMEI 2的信息:
getImei.invoke(manager, 1);
同理,获得IMSI,采用:
Method getImsi=clazz.getDeclaredMethod("getSubscriberId",int.class).
但为什么不用long.class ,而采用int.class,有点奇怪。。。
获得,电话号码,采用:
Method getPhoneNumber=clazz.getDeclaredMethod("getLine1NumberForSubscriber",int.class)
反射机制,非常值得学习和思考,第一次使用,纪念一下!
具体反射的参考:
侯捷谈Java反射机制
http://blog.csdn.net/njchenyi/article/details/1620939
http://www.blogjava.net/zh-weir/archive/2011/03/26/347063.html
- 通过反射机制,获得双卡双待机器的IMEI、IMSI、电话号码。
- 通过反射机制,获得双卡双待机器的IMEI、IMSI、电话号码
- 获得Android 设备的IMEI 和 IMSI
- 获得手机IMEI IMSI
- android 获得IMSI / IMEI
- Android开发之获得设备的IMEI 和 IMSI
- IMEI和IMSI的区别
- IMSI与IMEI的区别
- Android: 如何得到电话号码、IMEI、IMSI、SIM卡序列号
- imsi imei
- imei imsi
- 获取手机的IMEI与IMSI
- 获取手机的IMEI,MSISDN,ICCID,IMSI
- 手机的IMEI、MEID、ICCID、UDID、IMSI
- 序列号,IMEI,IMSI,ICCID的含义
- Windwos mobile如何获得IMEI号,IMSI号
- window mobile c# 获得imei和imsi号
- 【安卓】通过反射获取手机的imsi号
- 并查集
- 屏幕适配的笔记
- 版本发布后软件测试人员要做的工作
- 验证身份证是否合法
- Unity3D保存一张1080p(200W像素)以上的大图片 并打印
- 通过反射机制,获得双卡双待机器的IMEI、IMSI、电话号码。
- c# 调用摄像头进行视频录制和压缩等
- turtlebot+kinect在rviz上显示3D图像
- Android 开发过程中常用的工具类
- Android实现推送方式解决方案
- xargs
- OpenGL(3)学习网站
- Linux Socket编程(不限Linux)
- js的 function, javascript内置对象apply,call,this概念及之间的关系详解