Я хочу получать только активные вызовы с PhoneStateListener. Я создал слушателя с методом onCallStateChanged. Как только я набираю (и звонок поднят), состояние уже отключено.
Ну, это меня не удивляет, потому что текст в API: Состояние вызова устройства: Снять трубку. Существует, по крайней мере, один вызов, который набирает, активно или удерживается, а вызовы не звонят или не ждут.
Но есть ли возможность получать только активные вызовы? Thnx!
Из того, что я пробовал по моей связи, активный звонок по вызову CALL_STATE_OFFHOOK, попробуйте использовать файл журнала, чтобы просмотреть шаги.
попробуйте это.
private PhoneStateListener mPhoneListener = new PhoneStateListener() {
public void onCallStateChanged(int state, String incomingNumber) {
switch (state) {
case TelephonyManager.CALL_STATE_RINGING:
Log.d(TAG, "ringing goes here");
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
Log.d(TAG, "Active call goes here");
break;
case TelephonyManager.CALL_STATE_IDLE:
Log.d(TAG, "CALL STATE IDLE goes here");
break;
default:
Log.d(TAG, "Unknown state=" + state);
}
}
а затем назовите его:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
tm.listen(mPhoneListener, PhoneStateListener.LISTEN_CALL_STATE);
}
Не забудьте добавить разрешение на ваш файл манифеста:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
надеюсь, что это поможет