挂断电话并清除通讯录中的记录

1、创建android.telephony包,把NeighboringCellInfo.aidl复制进去。
2、创建com.android.internal.telephony包,把ITelephony.aidl复制进去。
位置如图:这里写图片描述
3、挂断电话核心方法(利用反射)

/**
 * 挂断电话
 */
protected void endCall() {
    //tm.endCall(); 1.5版本后,把该方法阉割掉了
    //想用该功能,实现方法
    //ServiceManager.getService();
    //反射调用
    //1.class  
    try {
        Class clazz = Class.forName("android.os.ServiceManager");
        //2. method
        Method method = clazz.getDeclaredMethod("getService", String.class);

        //3.obj 不需要 静态方法(静态方法用类名调用,不需要实例化对象)
        //4. 调用
        IBinder binder = (IBinder) method.invoke(null, Context.TELEPHONY_SERVICE);

        //5.aidl 
        ITelephony iTelephony = ITelephony.Stub.asInterface(binder);
        iTelephony.endCall();//挂断电话
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (NoSuchMethodException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (InvocationTargetException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (RemoteException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

4、清除通讯录中被endCall()方法挂断的电话号码(因为记录未接电话的时间不确定,所以利用内容观察者)

//挂断电话之前先注册内容观察者
getContentResolver().registerContentObserver(Uri.parse("content://call_log/calls"), true,
        new ContentObserver(new Handler()) {

            @Override
            public void onChange(boolean selfChange) {
                //电话日志变化 触发此方法调用
                deleteCalllog(incomingNumber);//删除电话日志
                //取消内容观察者注册
                getContentResolver().unregisterContentObserver(this);
                super.onChange(selfChange);
            }

});
endCall();

aidl下载地址:http://download.csdn.net/detail/csdn_lqr/9492569

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值