【发布时间】:2013-04-11 10:03:50
【问题描述】:
我想在 ICS 中断开拨出电话。
我的问题首先是我没有在 Gingerbread 的 IC 中获得广播,它工作正常并阻止呼叫,但在 ICS 中它不是广播。
对于 BroadCast,我创建了一个服务,并且我在 ICS 中也获得了 PHONE_STATE 的广播,但是当我尝试断开呼叫时,我收到了错误
NO such method name 'getITelephony'
在 ICS 通话中没有断开。
我正在使用以下代码通过广播断开呼叫...
try{
TelephonyManager manager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
Class c = Class.forName(manager.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
ITelephony telephony = (ITelephony)m.invoke(manager);
telephony.endCall();
} catch(Exception e){
Log.d("",e.getMessage());
}
PhonecallStateBroadcastReceiver.java
包名称为package com.android.internal.telephony;
ITelephony.aidl
interface ITelephony
{
boolean endCall();
void answerRingingCall();
void silenceRinger();
}
【问题讨论】:
-
我在 google nexus 中遇到了同样的问题
标签: android broadcastreceiver android-4.0-ice-cream-sandwich