2012-06-12 5 views
0

Existe-t-il un moyen de recevoir des diffusions (comme la notification par SMS) dans une application arrêtée? En fait, il fonctionne simplement inférieur à Android 3.1.Utilisation de BroadcastReciever dans une application arrêtée dans Android 3.1+

EDIT 1: Merci à @Squonk pour le commentaire. Donc, mes questions sont, est-ce vraiment impossible? vous pouvez vérifier l'application PlanB sur le marché qui fait ces choses.

EDIT 2: Ceci est mon récepteur de diffusion. La fonction onReceive n'est jamais appelée (lorsque l'application est arrêtée).

public class SmsReciever extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context arg0, Intent arg1) { 
     Log.e("kpav", "kpav"); 
     String url = "http://www.google.com"; 
     Intent i = new Intent(Intent.ACTION_VIEW); 
     i.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); 
     i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     i.addFlags(32); 
     i.setData(Uri.parse(url)); 

     arg0.startActivity(i); 
    } 

} 

Répondre

1

pour Android v3.1 partir, toute application qui a été manuellement démarré au moins une fois par l'utilisateur, recevra des émissions qu'il a enregistré dans le même manifeste après un redémarrage. MAIS ... l'utilisateur doit avoir démarré manuellement cette application - il n'est pas possible qu'une application soit installée et qu'elle reçoive automatiquement les diffusions autrement. En outre, si l'utilisateur utilise manuellement 'Forcer l'arrêt' dans les paramètres d'un périphérique, il ne recevra plus les diffusions tant que l'utilisateur n'aura pas redémarré manuellement l'application.

Donc, fondamentalement, en réponse à votre question ...

est-il un moyen de recevoir des émissions (comme notification sms) dans l'application arrêté?

... la réponse est non, sauf dans les circonstances que je décris ci-dessus.

+0

vérifier PlanB app sur le marché, comment cela fonctionne si ce n'est pas possible? –

+0

Je pense que nous avons eu cette conversation hier. PLAN B a exploité un trou de sécurité qui a été fermé à partir de la v3.1 car il était ouvert à un abus potentiel par un logiciel malveillant. – Squonk

+0

Je pense que planB fonctionne sur 3.1 et au-dessus –

1

Vous pouvez inclure Les packages ont été arrêtés pour recevoir des diffusions en ajoutant simplement l'indicateur suivant à l'intention de diffusion.

intent.addFlags(32); 

Où que 32 fait référence à Intent.FLAG_INCLUDE_STOPPED_PACKAGES qui est disponible à partir niveau de l'API 12.

+0

pouvez-vous m'aider plus précisément comment faire cela. –

+0

J'enregistre intention dans le fichier manifeste, puis-je ajouter des drapeaux là-bas? –

+0

juste ajouter/mettre un drapeau avec la valeur ** 32 ** (par exemple 'intent.addFlags (32);') à votre intention de diffusion et il sera écouté par tous ces paquets qui sont marqués comme * Stopped * – waqaslam

Questions connexes