Невозможно получить непустую строку из PhoneStateListener :: onCallStateChanged - PullRequest
6 голосов
/ 10 декабря 2010

Источник:

listener = new PhoneStateListener()
    {
        @Override
        public void onCallStateChanged(int state, String incomingNumber) {
            super.onCallStateChanged(state, incomingNumber);
            Toast toast = Toast.makeText(getApplicationContext(), incomingNumber, Toast.LENGTH_LONG);
            toast.show();
        }

    };

    ((TelephonyManager)getSystemService(TELEPHONY_SERVICE)).listen(listener , PhoneStateListener.LISTEN_CALL_STATE )

Привет,
Я использую этот код с разрешением android.permission.READ_PHONE_STATE для получения тост-сообщения, включая номер начатого вызова.Моя проблема в том, что входящий номер пуст, это не имеет значения, если вызов является исходящим или входящим, появляется тост, но пустой.
Я видел несколько решений для этого, но решение было получить номер совершенно другим способом, и я хочузнаю, можно ли использовать мой код для моих нужд.
Спасибо за советы,
Адам

1 Ответ

2 голосов
/ 04 ноября 2011

пожалуйста, включите разрешение в ваше заявление.

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


if(state == TelephonyManager.CALL_STATE_RINGING){
Toast toast = Toast.makeText(getApplicationContext(), incomingNumber, Toast.LENGTH_LONG);
toast.show();
}

CALL_STATE_OFFHOOK вернуть ноль, если его первый вызов. Поэтому вы должны использовать CALL_STATE_RINGING.

Надеюсь, это поможет вам.

...