如何反射SubscriptionManager和TelephonyManager获取其方法
来源:互联网 发布:twitter第三方登录js 编辑:程序博客网 时间:2024/06/05 23:42
mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); if (mTelephonyManager == null) { throw new Error("telephony manager is null"); } mSubscriptionManager = SubscriptionManager.from(mContext);
举个栗子,获取SubscriptionManagergetSubId(slotId) 和TelephonyManager 的getSimSerialNumber(int subId)
private static int[] getSubId(int slotId) { Method declaredMethod; int[] subArr = null; try { declaredMethod = Class.forName("android.telephony.SubscriptionManager").getDeclaredMethod("getSubId", new Class[]{Integer.TYPE}); declaredMethod.setAccessible(true); subArr = (int[]) declaredMethod.invoke(mSubscriptionManager, slotId); } catch (ClassNotFoundException e) { e.printStackTrace(); declaredMethod = null; } catch (IllegalArgumentException e2) { e2.printStackTrace(); declaredMethod = null; } catch (NoSuchMethodException e3) { e3.printStackTrace(); declaredMethod = null; } catch (ClassCastException e4) { e4.printStackTrace(); declaredMethod = null; } catch (IllegalAccessException e5) { e5.printStackTrace(); declaredMethod = null; } catch (InvocationTargetException e6) { e6.printStackTrace(); declaredMethod = null; } if (declaredMethod == null) { subArr = null; } MLog.d("getSubId = " + subArr[0]); return subArr; } private String getSimSerialNumber(int subId) { Method method; String status = null; try { method = mTelephonyManager.getClass().getMethod("getSimSerialNumber", int.class); method.setAccessible(true); status = String.valueOf(method.invoke(mTelephonyManager, subId)); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } MLog.d("getSimSerialNumber = " + status); return status; }
阅读全文
0 0
- 如何反射SubscriptionManager和TelephonyManager获取其方法
- SubscriptionManager,SubscriptionInfo,TelephonyManager的使用
- Android studio 电话管理者(TelephonyManager)获取方法
- 反射获取属性和方法
- 反射中方法的获取和执行
- JAVA反射机制获取类和方法
- JAVA反射机制获取类和方法
- Java反射获取get和set方法
- 【Android架构Telephony篇】Subscription和SubscriptionManager
- java 反射机制 之 getMethod获取公有方法 getDeclaredMethod获取所有方法 然后invoke执行其所有方法
- java 利用反射获取类,实例化,并执行其内部方法
- 使用TelephonyManager获取网络和SIM卡信息
- TelephonyManager类来获取imei号和其他手机信息
- TelephonyManager类,获取手机和sim卡信息接口
- android使用TelephonyManager获取imei和其他手机信息
- TelephonyManager获取手机信息
- CComboBox获取其CEdit和CListBox的另一种方法
- Java通过反射获取到其类的属性和值
- ASP.NET基础篇--2、学习笔记
- 当数据迁移遇到MySql表统计分析(Cardinality)不准确的坑
- hdu2256
- 暑假测试 Day 1
- hdu5775 sum
- 如何反射SubscriptionManager和TelephonyManager获取其方法
- 单点登录笔记
- Android调用WebView的JS和JS调用Android的方法
- Oracle学习总结--数据更新和事务控制
- 用栈实现图的深度优先搜索Java实现
- HUD.2544 最短路 (Dijkstra)
- HDU2717 Catch That Cow BFS
- jvm 之 内存溢出场景模拟
- LSTM GRU 得到所有的state 而不是最后一个state