重複の可能性:
着信コールを傍受する方法 Android 2.3.x
デフォルトの電話画面を上書きするアプリを作成しており、Android 2.3 以降と互換性がある必要があります。
現在、私はこのコードを持っています:
private void answerCallAidl() throws RemoteException {
// telephonyService.silenceRinger(); -------not work on 2.3
// telephonyService.answerRingingCall(); -------not work on 2.3
Intent headSetUnPluggedintent = new Intent(Intent.ACTION_HEADSET_PLUG);
headSetUnPluggedintent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
headSetUnPluggedintent.putExtra("state", 1); // 0 = unplugged 1 = Headset with microphone 2 = Headset without microphone
headSetUnPluggedintent.putExtra("name", "Headset");
// TODO: Should we require a permission?
sendOrderedBroadcast(headSetUnPluggedintent, null);
Intent buttonDown = new Intent(Intent.ACTION_MEDIA_BUTTON);
buttonDown.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_DOWN,
KeyEvent.KEYCODE_HEADSETHOOK));
sendOrderedBroadcast(buttonDown, "android.permission.CALL_PRIVILEGED");
// froyo and beyond trigger on buttonUp instead of buttonDown
Intent buttonUp = new Intent(Intent.ACTION_MEDIA_BUTTON);
buttonUp.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP,
KeyEvent.KEYCODE_HEADSETHOOK));
sendOrderedBroadcast(buttonUp, "android.permission.CALL_PRIVILEGED");
}
private void ignoreCallAidl() throws RemoteException {
// telephonyService.silenceRinger(); -------not work on 2.3
// telephonyService.endCall(); -------not work on 2.3
Intent buttonUp = new Intent(Intent.ACTION_MEDIA_BUTTON);
buttonUp.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_DOWN,
KeyEvent.KEYCODE_HEADSETHOOK));
sendOrderedBroadcast(buttonUp, "android.permission.CALL_PRIVILEGED");
}
私の問題は次のとおりです。
- 着信を拒否できません。
- バージョン 2.3.5 では動作しません。
- アプリでデフォルトの電話画面を置き換えたい。
助けていただければ幸いです。