我能够以编程方式断开呼叫,以便在Android 2.2中调用未知号码。但在android 4.1中,它不起作用。
工作代码断开Android 2.2中的调用:
private Class c;
private Method m;
private com.android.internal.telephony.ITelephony telephonyService;
public void onReceive(Context context, Intent intent)
{
Bundle b = intent.getExtras();
String state = b.getString(TelephonyManager.EXTRA_STATE);
if(state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_RINGING))
{
TelephonyManager tm = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
c = Class.forName(tm.getClass().getName());
m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
telephonyService = (ITelephony) m.invoke(tm);
telephonyService.silenceRinger();
telephonyService.endCall();
}
}
请帮帮我。谢谢你提前
最后我得到了2.6版本的解决方案。
自从2.3+以来, MODIFY_PHONE_STATE
权限不再适用于silenceRinger(),但endCall也没问题。因此,解决方案是将注释注释到silenceRinger()。
答案 0 :(得分:2)
自2.3+以来,MODIFY_PHONE_STATE不再使用silenceRinger(),但是endCall就好了。
所以解决方案就是注释掉对silentRinger()的调用。
一个简单的例子:
http://androidbridge.blogspot.ro/2011/05/how-to-answer-incoming-call-in-android.html
干杯