调用ITelephony的endCall( )方法自动挂断电话

各种来电防火墙之类的功能都可以过滤掉黑名单中的来电, 原理是响铃是判断来电号码是否存在于黑名单中, 如果存在则将其挂断. 而一些软件可以选择被挂断的家伙听到的提示音是"正在通话中"还是"欠费停机"之类的, 则是通过判断之后用运营商的"呼叫转移"功能将号码转接给一个已经停机的号码来实现的. 


挂断一个电话在API-10和之前版本中直接调用TelephonyManager对象的endCall方法即可, 但是之后的版本中这个API不再被公开(升级后的Android系统中还存在, 但是在Android SDK中不再提供给开发者* ). 


还想忤逆股沟的意思来调用它的话, 大概有两中方式: 

第一种: 自己定制android.jar文件. 这种方法不用每次用到"非公开"的API都在代码中费一番功夫. 这里http://mogoweb.net/archives/87 有非常详细的说明. 

第二种: 用反射. (有两种方法): 

package com.example.hanguptest;

import java.lang.reflect.Method;

import android.app.Activity;
import android.os.Bundle;
import android.os.IBinder;
import android.telephony.TelephonyManager;
import android.view.View;
import android.widget.Toast;

import com.android.internal.telephony.ITelephony;


public class MainActivity extends Activity {
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值