Impossibile ottenere stringa non vuota da PhoneStateListener :: onCallStateChanged
-
08-10-2019 - |
Domanda
Fonte:
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 )
Ciao,
Sto usando questo codice, con il permesso android.permission.READ_PHONE_STATE
, per ottenere brindisi messaggio, compreso il numero di chiamata iniziata. Il mio problema è che incomingNumber è vuoto, fai non importa se chiamata è in uscita o in entrata, toast appare, ma vuota.
Ho visto alcune soluzioni per questo, ma la soluzione era quella di ottenere il numero con il modo completamente diverso e voglio sapere se il mio codice può essere utilizzato per le mie esigenze.
Grazie per i consigli,
Adam
Soluzione
si prega di includere l'autorizzazione nell'applicazione.
<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();
}
ritorno CALL_STATE_OFFHOOK
nullo se la sua prima chiamata. Così si dovrebbe usare CALL_STATE_RINGING
.
Speriamo che vi aiuterà.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow