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 Receiver
automatiquement 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 № 1J'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));
}
}