Android弹出拨号界面和拨打电话实现(转)
发布日期:2022-02-24 11:36:03
浏览次数:9
分类:技术文章
本文共 3210 字,大约阅读时间需要 10 分钟。
需要使用反射机制将ITelephony反射出来进行操作。private void dial(String number) { Classc = TelephonyManager.class; Method getITelephonyMethod = null; try { getITelephonyMethod = c.getDeclaredMethod("getITelephony", (Class[]) null); getITelephonyMethod.setAccessible(true); } catch (SecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NoSuchMethodException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { TelephonyManager tManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); Object iTelephony; iTelephony = (Object) getITelephonyMethod.invoke(tManager,(Object[]) null); Method dial = iTelephony.getClass().getDeclaredMethod("dial", String.class); dial.invoke(iTelephony, number); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NoSuchMethodException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvocationTargetException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void call(String number) { Class c = TelephonyManager.class; Method getITelephonyMethod = null; try { getITelephonyMethod = c.getDeclaredMethod("getITelephony", (Class[]) null); getITelephonyMethod.setAccessible(true); } catch (SecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NoSuchMethodException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { TelephonyManager tManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); Object iTelephony; iTelephony = (Object) getITelephonyMethod.invoke(tManager,(Object[]) null); Method dial = iTelephony.getClass().getDeclaredMethod("call", String.class); dial.invoke(iTelephony, number); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NoSuchMethodException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvocationTargetException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
转载地址:https://blog.csdn.net/iteye_17609/article/details/82006677 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年03月20日 23时17分26秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
直连线和交叉线的区别
2019-04-26
数据库视频—使用.Net访问SQL Server
2019-04-26
数据库视频—总结
2019-04-26
简单工厂模式和策略模式的比较
2019-04-26
简单工厂、工厂方法、抽象工厂模式
2019-04-26
单例模式
2019-04-26
组合模式
2019-04-26
三层架构
2019-04-26
委托与事件(浅度分析)—委托
2019-04-26
委托与事件(浅度分析)—事件
2019-04-26
.NET框架
2019-04-26
VB.NET入门
2019-04-26
七层登录
2019-04-26
Polar bear and air-conditioner
2019-04-26
不加注解引起的500错误
2019-04-26
PB使用专用接口连接SQL Server
2019-04-26
PB中创建需要带参数查询的DataWindow
2019-04-26
idea如何设置自动换行
2019-04-26
Java—JDBC入门
2019-04-26
java各工具类Utils
2019-04-26