Android弹出拨号界面和拨打电话实现(转)
发布日期:2022-02-24 11:36:03 浏览次数:9 分类:技术文章

本文共 3210 字,大约阅读时间需要 10 分钟。

需要使用反射机制将ITelephony反射出来进行操作。
private void dial(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("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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:google Map的一个简单实例
下一篇:常用的小方法,避免忘记,在此记录一下

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年03月20日 23时17分26秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章