発信コールの場合、OFF HOOK の状態が自動的にスローされます。皆さん、こんにちは。まず私の英語でお詫び申し上げます。
さて、私のアプリケーションでは、すべての呼び出しを前後に監視しています。しかし、通話開始直後なので、「呼び出し中」の状態は関係ありませんが、アプリケーションは偽の「オフフック」状態をトリガーしています。通話 (発信通話) を行うと、呼び出し音が鳴った直後にアプリが状態をオフフックに設定しています。これにより、応答できないため、すべきではない呼び出しを監視しています。
誰かがすでにこの問題を抱えていましたか?
AndroidManifest.xml
<receiver
android:name=".CallStateBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
<receiver
android:name=".OutgoingCallBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
CallStateBroadcastReceiver:
CallStatePhoneStateListener phoneListener = new CallStatePhoneStateListener(context, intent);
TelephonyManager telephony = (TelephonyManager) context.getSystemService(
Context.TELEPHONY_SERVICE);
telephony.listen(phoneListener, PhoneStateListener.LISTEN_CALL_STATE);
CallStatePhoneStateListener:
@Override
public void onCallStateChanged(int state, String incomingNumber) {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
// do something
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
// do something
break;
case TelephonyManager.CALL_STATE_RINGING:
// do something
break;
}
OutgoingCallBroadcastReceiver:
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (bundle == null)
return;
String number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
// just save the number
}