Android自动挂断电话

android的新版本已经把Phone类给隐藏起来了,想要用代码实现挂断电话,就必须通过AIDL才行,

第一步:在程序中新建一个包,包名必须为:com.android.internal.telephony,因为要使用aidl,

第二步:在这个包里面新建一个名为ITelephony.aidl的文件,然后在文件里面写入代码:

packagecom.android.internal.telephony;
interfaceITelephony{
booleanendCall();
voidanswerRingingCall();
}

然后保存,eclipse会自动在gen文件夹下生成一个ITelephony.java的类。

主程序的代码如下:

packageling.Phonemanager;

importjava.lang.reflect.Method;

importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.os.RemoteException;
importandroid.telephony.PhoneStateListener;
importandroid.telephony.TelephonyManager;

importcom.android.internal.telephony.ITelephony;
publicclassPhonemanagerextendsActivity{
/**Calledwhentheactivityisfirstcreated.*/
privateITelephonyiTelephony;
privateTelephonyManagermanager;
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
phoner();
manager.listen(newPhoneStateListener(){

@Override
publicvoidonCallStateChanged(intstate,StringincomingNumber){
//TODOAuto-generatedmethodstub
super.onCallStateChanged(state,incomingNumber);
switch(state){
//判断是否有电话接入
case1:
try{
//当电话接入时,自动挂断。
iTelephony.endCall();
System.out.println("uncall");
}catch(RemoteExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}

},PhoneStateListener.LISTEN_CALL_STATE);

}
publicvoidphoner(){
manager=(TelephonyManager)getSystemService(TELEPHONY_SERVICE);
Class<TelephonyManager>c=TelephonyManager.class;
MethodgetITelephonyMethod=null;
try{
getITelephonyMethod=c.getDeclaredMethod("getITelephony",(Class[])null);
getITelephonyMethod.setAccessible(true);
iTelephony=(ITelephony)getITelephonyMethod.invoke(manager,(Object[])null);
}catch(IllegalArgumentExceptione){
e.printStackTrace();
}catch(Exceptione){
e.printStackTrace();

}
}
}

只要在电话接入时,再加上一个判断电话号码是否是黑名单的功能,就可以做成一个黑名单的程序了,获取电话号码的函数是:getLine1Number();

还需要在AndroidManifest.xlm里添加

<uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>权限

更多相关文章

  1. Android中读取电话本Contacts联系人的所有电话号信息
  2. Android的电话功能介绍
  3. android读取sim卡联系人
  4. [Android]电话拨号器
  5. Android(安卓)手机录音功能实现
  6. android访问电话号码和电子邮箱
  7. android 电话录音
  8. Android自动判定输入的是电话号码还是网址
  9. android 呼入电话的监听(来电监听)

随机推荐

  1. Android(安卓)不同API版本 向后兼容
  2. Android的Appwidget TextView中没有更新(
  3. Android中callback(接口回调)机制
  4. android 颜色、 透明度参考表
  5. Android(安卓)uses-feature
  6. android典型代码系列(二十八)------通话
  7. Android(安卓)SDK 有bug
  8. [Android(安卓)Samples视频系列之ApiDemo
  9. Android-Skillful-Craftsman(Android能工
  10. Android(安卓)判断Intent是否存在