クラス、電話呼び出し状態のリスナーがあります。これで、この回線で通話が切れると、
case TelephonyManager.CALL_STATE_IDLE:
Log.e(TAG, "CALL_STATE_IDLE");
break;
複数回実行します。これは私の要件に悪影響を及ぼします。誰かがこの問題を知っているなら、私を助けてください。
前もって感謝します
public class IncomingCallListener extends BroadcastReceiver
{
private Context mContext;
private static final String TAG = "CustomBroadcastReceiver";
@Override
public void onReceive(Context context, Intent intent)
{
mContext = context;
TelephonyManager telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
CustomPhoneStateListener customPhoneListener = new CustomPhoneStateListener();
telephony.listen(customPhoneListener, PhoneStateListener.LISTEN_CALL_STATE);
Bundle bundle = intent.getExtras();
String phoneNr= bundle.getString("incoming_number");
}
public class CustomPhoneStateListener extends PhoneStateListener
{
private static final String TAG = "CustomPhoneStateListener";
@Override
public void onCallStateChanged(int state, String incomingNumber)
{
switch (state)
{
case TelephonyManager.CALL_STATE_RINGING:
if(!incomingNumber.equalsIgnoreCase(""))
{
Log.e(TAG, "CALL_STATE_RINGING");
}
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
Log.e(TAG, "CALL_STATE_OFFHOOK");
break;
case TelephonyManager.CALL_STATE_IDLE:
Log.e(TAG, "CALL_STATE_IDLE");
break;
default:
break;
}
super.onCallStateChanged(state, incomingNumber);
}
}
}