您的位置:首页 > 大数据 > 人工智能

AIDL实现挂断电话

2016-12-08 09:54 141 查看
publicclass InCallReceiver extends BroadcastReceiver {

private TelephonyManager manager = null;

@Override

publicvoid onReceive(Context context, Intent intent) {

manager = (TelephonyManager) context

.getSystemService(Service.TELEPHONY_SERVICE);

switch (manager.getCallState()) {

case TelephonyManager.CALL_STATE_RINGING:

String incomingNumber = intent.getStringExtra("incoming_number");

if ("12345678".equals(incomingNumber)) {

try {

// 获得TelephonyManager的class对象

Class<TelephonyManager> telephonyManagerClass = TelephonyManager.class;

// 获得TelephonyManager.getITelephony方法的Method对象

Method telephonyMethod = telephonyManagerClass

.getDeclaredMethod("getITelephony", (Class[]) null);

// 允许访问私有的方法

telephonyMethod.setAccessible(true);

// 调用getITelephony()方法返回ITelephony对象

ITelephony telephony = (com.android.internal.telephony.ITelephony) telephonyMethod

.invoke(manager, (Object[]) null);

// 挂断电话

telephony.endCall();

} catch (Exception e) {

Toast.makeText(context, e.getMessage(), Toast.LENGTH_LONG)

.show();

}

}

break;

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: