Понять, когда пользователь говорит по телефону - PullRequest
1 голос
/ 17 октября 2010

(Android) Несколько дней назад я увидел способ регистрации приемника вещания, чтобы понять, когда экран становится черным или наоборот.

Теперь я хотел бы найти способ понять, когда пользователи говорят по телефону, но я не нахожу трансляцию для этого случая, так как я могу понять, находится ли пользователь на телефоне? (Возможно, не всегда запуская службу, которая разряжает батарею).

Tnk в

Valerio

1 Ответ

0 голосов
/ 27 февраля 2011

Я не уверен насчет «разговора» по телефону, поскольку нет API для его определения, но вы можете прослушивать состояние телефона, например:

TelephonyManager telephonyManager = (TelephonyManager)
                                       getSystemService(Context.TELEPHONY_SERVICE);

PhoneStateListener listener = new PhoneStateListener() {
    @Override
    public void onCallStateChanged(int state, String incomingNumber) {
        String stateString = "N/A";
        switch (state) {
            case TelephonyManager.CALL_STATE_IDLE:
                stateString = "Idle";
                break;
            case TelephonyManager.CALL_STATE_OFFHOOK:
                stateString = "Off Hook";
                break;
            case TelephonyManager.CALL_STATE_RINGING:
                stateString = "Ringing";
                break;
        }
    }
};
telephonyManager.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);

Не забудьте следующее разрешение в манифесте:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
...