安卓骚扰拦截挂断电话时候的操作

来源:互联网 发布:手机淘宝店收藏链接 编辑:程序博客网 时间:2024/04/27 22:06

挂断电话时候需要执行的操作

由于在开发的时候谷歌自己屏蔽了api,所以需要自己找到其api再编写出来。

清单文件添加以下内容

<uses-permissionandroid:name="android.permission.CALL_PHONE"/>

 

 

       publicvoid endCall() {

              //ITelephony.Stub.asInterface(ServiceManager.getService(Context.TELEPHONY_SERVICE));

              try{

                     Classclazz = getClassLoader().loadClass("android.os.ServiceManager");

                     Methodmethod = clazz.getDeclaredMethod("getService", String.class);

                     IBinderiBinder = (IBinder) method.invoke(null, Context.TELEPHONY_SERVICE);

                     ITelephonyiTelephony = ITelephony.Stub.asInterface(iBinder);

                     iTelephony.endCall();

              }catch (Exception e) {

                     e.printStackTrace();

              }

       }

 

删除黑名单的呼叫记录

 

也要在清单文件中加入一下代码

   <uses-permissionandroid:name="android.permission.READ_CALL_LOG"/>

<uses-permissionandroid:name="android.permission.WRITE_CALL_LOG"/>

 

public voiddeleteCallLog(final String incomingNumber) {

              final ContentResolver resolver = getContentResolver();

              final Uri uri =Uri.parse("content://call_log/calls");

              //利用内容观察者 观察呼叫记录的数据库,如果生成了呼叫记录就立刻删除呼叫记录

              resolver.registerContentObserver(uri,true, new ContentObserver(new Handler()) {

                     @Override

                     public voidonChange(boolean selfChange) {

                            //当内容观察者观察到数据库的内容变化的时候调用的方法.

                            super.onChange(selfChange);

                            resolver.delete(uri,"number=?", new String[]{incomingNumber});

                     }

                    

              });

       }

 

 

对话框的监听器要写,全路径名

0 0
原创粉丝点击