Question

Quelqu'un sait pourquoi ma demande reçoit encore la diffusion ACTION_BOOT_COMPLETED même lorsque mon application n'a pas le android.permission.RECEIVE_BOOT_COMPLETED d'autorisation dans le fichier manifeste? Je pensais qu'il était nécessaire, mais quelques tutoriels que j'ai utilisé aussi ne l'avait pas. Quelques fait. J'utiliser mon téléphone en cours d'exécution CyanogenMod pour tester, mais je doute que les questions. LogCat montre mon journal « Notifié boot » à chaque démarrage. Voir ci-dessous pour le code utilisé.

AndroidManifest.xml

  <receiver android:name="AlarmReceiver">
   <intent-filter>
    <action android:name="android.intent.action.BOOT_COMPLETED" />
    <category android:name="android.intent.category.HOME" />
   </intent-filter>
  </receiver>

class AlarmReceiver

  public class AlarmReceiver extends BroadcastReceiver {
  private static final String TAG = "MyProgram";

  @Override
  public void onReceive(Context context, Intent intent) {
   try {
          if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
     Log.d(TAG, "Notified of boot");
           }
          Intent newIntent = new Intent(context, MyService.class);
          context.startService(newIntent);
    } catch (Exception e) {
     Log.d(TAG, "An alarm was received but there was an error");
     e.printStackTrace();
     }
    }
  }

Je revisité cela sur l'émulateur et reproduit avec succès le « problème » sur Android 2.1, 2.2 et 2.3. Je reçois un ANR (comme prévu) depuis l'émulateur n'a pas la base de données mes requêtes app. Lorsque je supprime toutes les utilisations-autorisations déclarées du manifeste, je reçois les erreurs de refus d'autorisation prévu en essayant d'utiliser mon application. Cependant, je reçois toujours l'intention ACTION_BOOT_COMPLETED diffusée lors du démarrage. Toutes les suggestions?

Était-ce utile?

La solution

Cela semble être un bug dans Android. Je peux reproduire le problème sur le matériel ordinaire Nexus One et Nexus S. J'ai déposé un rapport de bug sur elle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top