/ / Écoutez l'état du téléphone même après le démarrage - Android, diffuseur, écouteur d'état du téléphone

Écoutez l’état du téléphone même après le démarrage - Android, broadcastreceiver, phone-state-listener

Dans mon application, j'écoute les événements d'état du téléphone (par exemple, appel reçu, inactif, etc.) à l'aide d'un Broadcast Receiver. Code comme ci-dessous:

public class PhoneCallreceiver extends BroadcastReceiver {
private boolean ringing;
private boolean received;

public PhoneCallreceiver() {
}

@Override
public void onReceive(Context context, Intent intent) {
Log.v("ranjith", "enterted receiver");
Bundle bundle = intent.getExtras();
String incomingnumber = bundle.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
String state = bundle.getString(TelephonyManager.EXTRA_STATE);
Log.v("ranjapp", state);

if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
ringing = true;
received = false;
}
}

Manifest.xml

    <receiver
android:name=".PhoneCallreceiver"
android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE"/>
</intent-filter>
</receiver>

Mon problème est que je veux démarrer le BroadCast Receiverautomatiquement après le redémarrage de l'appareil. j'ai un BroadCast Receiver pour écouter pour démarrer mais je ne sais pas comment démarrer le PhoneCallreceiver Récepteur BroadCast.

Manifest.xml

   <receiver
android:name=".backend.BootStarter"
android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>

Code:

public class BootStarter extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
PhoneCallreceiver callreceiver = new PhoneCallreceiver();
context.registerReceiver(callreceiver,new IntentFilter(**what to put here**));
}
}

Réponses:

0 pour la réponse № 1

J'ai trouvé la réponse à ma question, l'intention de filtrer l'intention de recevoir un phonestate est android.telephony.TelephonyManager.ACTION_PHONE_STATE_CHANGED

Mon code mis à jour ci-dessous:

public class BootStarter extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
PhoneCallreceiver callreceiver = new PhoneCallreceiver();
context.registerReceiver(new PhoneCallreceiver(), new IntentFilter(android.telephony.TelephonyManager.ACTION_PHONE_STATE_CHANGED));
}
}