Je suis nouveau à la programmation Android. J'ai écrit un programme qui intercepte l'appel entrant en utilisant BroacastReciever. Lorsque je démarre mon application, elle commence à fonctionner. Maintenant, le problème est quand je redémarre mon téléphone android, ce BroadcastReciever ne fonctionne pas. Donc, je suppose que je dois faire un service pour cela. Mais je ne sais pas quand commencer le service et où commencer BroadcastReciever.Comment faire fonctionner BroadcastReciever après le redémarrage?
code BroadcastReciever -
public class CallInterceptor extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Service started", Toast.LENGTH_LONG).show();
Bundle extras = intent.getExtras();
if (extras != null) {
String state = extras.getString(TelephonyManager.EXTRA_STATE);
Toast.makeText(context, "Phone is " + state, Toast.LENGTH_LONG).show();
if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
String phoneNumber = extras
.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
Toast.makeText(context, "Call from " + phoneNumber, Toast.LENGTH_LONG).show();
//sendSMS(phoneNumber);
//toggle ringer mode
AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
toggleMode(am);
}
}
}
fichier AndroidManifest -
<receiver android:name="com.nagarro.service.CallInterceptor" >
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" >
<action android:name="android.intent.action.BOOT_COMPLETED" />
</action>
</intent-filter>
</receiver>
Je ne pense pas <action android:name="android.intent.action.BOOT_COMPLETED" />
fonctionne.
Aussi, est-il possible de le faire sans service? Veuillez suggérer une approche qui m'aidera à intercepter l'appel evertime (même après le redémarrage).
Merci pour la correction des balises ... Je sais que je n'utilise pas de service, mais ma question est que ce code est suffisant ou dois-je faire un service? –
Merci Mike..mon code fonctionne maintenant après avoir correctement fermé cette balise .. –
En fait, je prévois d'exécuter ce BroacastReciever pour toujours en arrière-plan ... Est-ce un problème? –