Impossible d'obtenir la chaîne non vide de PhoneStateListener :: onCallStateChanged

StackOverflow https://stackoverflow.com/questions/4412224

  •  08-10-2019
  •  | 
  •  

Question

Source:

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 )

Salut,
J'utilise ce code, avec la permission de android.permission.READ_PHONE_STATE, pour obtenir du pain grillé un message y compris le numéro d'appel a commencé. Mon problème est que incomingNumber est vide, il commets peu importe si l'appel est sortant ou incomming, du pain grillé apparaissent, mais vide.
J'ai vu quelques solutions pour cela, mais la solution était d'obtenir le nombre de manière complètement différente et je veux savoir si mon code peut être utilisé pour mes besoins.
Merci pour avis,
Adam

Était-ce utile?

La solution

S'il vous plaît inclure la permission dans votre application.

<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 return null si son premier appel. Vous devez donc utiliser CALL_STATE_RINGING.

Espérons que cela vous aidera.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top