J'ai besoin d'un écouteur large application pour déterminer quand l'état du service change sur le téléphone. J'ai parcouru tous les exemples en ligne, j'ai copié la ligne, modifié le manifeste, et je ne peux rien faire pour travailler.NE PEUT PAS faire fonctionner PhoneStateListener. J'ai vu les exemples
Est-ce qu'un auditeur d'état de téléphone doit avoir été en activité? Est-ce que je peux avoir de la vieille classe pour écouter un changement d'état?
C'est très frustrant.
Dans ma classe, je ...
private class ServiceReceiver extends BroadcastReceiver{
@Override
public void onReceive(android.content.Context context, Intent intent) {
Log.i(TAG, "onReceive");
MyPhoneStateListener qpsl = new myPhoneStateListener();
TelephonyManager tm = (TelephonyManager)context.getSystemService(android.content.Context.TELEPHONY_SERVICE);
tm.listen(qpsl, PhoneStateListener.LISTEN_SERVICE_STATE);
}
}
private class MyPhoneStateListener extends PhoneStateListener{
public void onServiceStateStateChanged(ServiceState serviceState){
Log.i(TAG, "ServiceState = " + serviceState.getState();
}
Je sais que je dois modifier le manifeste pour le récepteur de radiodiffusion et phonestate. Où? Je veux cette application large.
C'est tout le code que j'ai, quelqu'un peut-il me montrer ce qui me manque pour que je puisse écouter un changement d'état de service?
Que dois-je mettre dans le manifeste pour que cela fonctionne? Comment enregistrer le récepteur? –
Comme je l'ai dit, puisque l'état du téléphone n'est pas un 'Broadcast' traditionnel. Si cela avait été le cas, vous devriez l'enregistrer dans le manifeste et indiquer quelle est l'intention de diffusion de '' BroadcastReceiver''. La manière correcte d '"enregistrer" un auditeur d'état du téléphone est d'utiliser 'TelephonyManager'' écouter() 'méthode, que vous faites déjà. Maintenant tout ce que vous avez à faire est de sortir ce code de 'onReceive()' car il n'est jamais appelé. Cochez cette réponse sur SO - http://stackoverflow.com/a/8657099/570930 – curioustechizen