*123*
私のアプリケーションには、特定の番号 (例: )をダイヤルしているときに発信通話を終了する (および他のアクティビティを開始する) 機能があります。
現在動作していますが、200 ミリ秒の遅延が必要です。遅延がなければ、意図を受け取ることはできません。
遅延により、複数の画面のちらつきが発生します。
my activity shows
-> switch to call
-> end call
->switch back to my activity
public class OutgoingCallListener extends BroadcastReceiver {
// ...
public void onReceive(final Context context, Intent intent) {
// ...
if(intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
// ...
if(number.equals("*123*")) {
// ...
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
telephonyService.endCall();
}
}, 200);
}
}
}
}
この特別な番号のダイヤル機能を備えた他のアプリケーションを見たことがありますが、通話は終了ビープ音なしですぐに終了し、ちらつきなしでアプリのアクティビティに切り替わります。
Q1:通話を遅滞なく終了する方法を知っている人はいますか? 以前にキャッチできる別のインテントはありACTION_NEW_OUTGOING_CALL
ますか?
Q2:スペックの低い (CPU が遅く、メモリが少ない) 携帯電話BroadcastReceiver
でも、まともな電話と同じように動作しますか?