ICS で発信通話を切断したい。
私の問題は、まず第一に、Gingerbread の IC でブロードキャストを取得していないことです。正常に動作し、通話をブロックしていますが、ICS ではブロードキャストではありません。
BroadCast 用にサービスを作成し、ICS でも BroadCast を取得していPHONE_STATE
ますが、通話を切断しようとするとエラーが発生します
NO such method name 'getITelephony'
ICSコールで切断されていません。
次のコードを使用して、BroadCast を使用して通話を切断しています...
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();
}