Java反射机制和TelephoneManager电话监听
来源:互联网 发布:淘宝的发货地址在哪 编辑:程序博客网 时间:2024/05/17 04:23
</pre><pre class="java" name="code"> TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); PhoneStateListener listener=new PhoneStateListener(){ @Override //监测电话状态的变化。 public void onCallStateChanged(int state, String incomingNumber) { // state 电话的状态 incomingNumber 打进来的号码 switch(state){ //无状态 case TelephonyManager.CALL_STATE_IDLE: break; //通话状态 case TelephonyManager.CALL_STATE_OFFHOOK: break; //响铃状态 case TelephonyManager.CALL_STATE_RINGING: int mode= Blackmdb.getInstance(getApplicationContext()).queuenumber(incomingNumber); if(mode==2||mode==3){ Log.d("挂断电话","挂断"); endcall(); } break; default: break; } super.onCallStateChanged(state,incomingNumber); } }; tm.listen(listener,PhoneStateListener.LISTEN_CALL_STATE);
private void endcall() { //利用反射机制挂断电话 try { //获取类对象 Class clazz= Class.forName("android.os.ServiceManager"); //获取类中方法,这个方法是非静态的 Method mothod = clazz.getDeclaredMethod("getService",String.class); //执行这个方法 IBinder binder= (IBinder) mothod.invoke(null, Context.TELEPHONY_SERVICE); ITelephony iTelephony = ITelephony.Stub.asInterface(binder); iTelephony.endCall();//挂断电话 } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (RemoteException e) { e.printStackTrace(); } }
反射机制:
调用隐藏类中的方法直接调用不了时 采用反射调用的方法。
1.获取class 对象。
a.类型.class 类名.class
b.Class.forname("完整路径+类名");
c.obj.getClass(); 通过实例化对象获取类对象
2.获取method对象。
Class.getMethod("名",参数类型(String.class)) ....
3.产生实例对象(非静态方法)
class.newInstance()无参。
4.调用
方法对象invoke
method.Invoke(obj(调用该方法的对象),参数)
由于返回的是一个Ibandler 对象,aidl 方式调用服务的方法。
如果报错说明引用了其他的AIDL文件,重新考。(包名类名一致)
返回的bindler 通过aidl 返回一个Itelephony对象。
就可以挂断。静态方法。
1类对象的常用方法
getname()获得类中完整名称
getDeclaredFields()获取类中所有属性
getDeclaredMethods 获得类中所有方法
getConstructors获得类构造方法
newInstance()实力化类对象
0 0
- Java反射机制和TelephoneManager电话监听
- Java反射机制和Class
- java 反射和代理机制
- JAVA反射和代理机制
- java 反射和代理机制
- Java RTTI和反射机制
- java反射机制和运用
- java反射和代理机制
- Java RTTI和反射机制
- Java类加载机制和反射机制
- 电话监听和调用挂断电话
- 监听电话呼入和呼出
- 【反射】JAVA反射机制
- 【Java基础】RTTI和Java反射机制
- TelephoneManager学习之二,添加黑名单并自动挂断电话
- 利用JAVA反射机制访问ITelephony隐藏接口(android程序中挂断电话)
- java的反射和内省机制
- java反射机制和getClass()函数
- 162. Find Peak Element
- 华为--嵌入式软件工程师面试题汇总
- php 生成条形码(基于yii)
- Xen虚拟化技术的模式和演变
- JavaWeb防止表单重复提交
- Java反射机制和TelephoneManager电话监听
- NSLayoutAttributeLeft与NSLayoutAttributeLeading的区别
- 剑指offer—左旋转字符串
- Ajax实现页码式分页
- ffmpeg超详细综合教程二——为直播流添加滤镜
- [从头学数学] 第215节 带着计算机去高考(七)
- 点评CAT搭建 分布式监控系统
- Java main方法参数args[]
- 制作更生动的演示文档