J'écris un programme d'espionnage (légal). Je veux faire ce programme caché sur le lanceur (afin qu'aucune icône ne soit affichée). J'ai essayé de supprimer la ligne <category Android:name="Android.intent.category.LAUNCHER" />
de AndroidManifest.xml
, mais l'utilisateur ne peut pas lancer l'application en mode de démarrage initial (configuration). Qui a des idées?
Comment puis-je le faire?
Vous devez faire de votre application un service. Voici comment Androids crée des composants de services:
http://developer.Android.com/guide/components/services.html
Trouvé ceci aussi sur MobiWare:
Lorsque vous souhaitez suivre l'utilisation du mobile ou collecter des données sans que l'utilisateur en ait connaissance, cela peut vous aider.
Étape 1: Créer une application avec l’icône No . Normalement, une activité est déclarée comme suit dans le manifeste.
<activity
Android:label="@string/app_name"
Android:name="org.security.tracker.Tracker-activity" >
<intent-filter >
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
Supprimez l'étiquette de catégorie, vous ne recevrez plus l'icône de l'application. Maintenant, vous n'avez plus besoin d'activité. Supprimez donc ce segment . Mais vous pourriez penser, comment l'application fonctionnera sans aucun déclencheur ou quel est le point de départ de l'application . C'est la solution.
<!-- Start the Service if applicable on boot -->
<receiver Android:name="org.security.tracker.ServiceStarter" >
<intent-filter >
<action Android:name="Android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
Cela déclenche votre code qui écrit dans Receiver par vous pouvez exécuter le service pour implémenter vos pensées.
<service Android:name="org.security.tracker.serviceCode" />
Vous devez ajouter cette permission,
<uses-permission Android:name="Android.permission.RECEIVE_BOOT_COMPLETED" />
Votre code ne fonctionne que lorsque le téléphone redémarre.
Étape 2. Écrivez votre code
Au redémarrage, la recevier se déclenchera, vous pourrez alors commencer votre service.
class ServiceStarter extends BroadcastReceiver {
@Override
public void onReceive(Context _context, Intent _intent) {
Intent i = new Intent("com.prac.test.MyPersistingService");
i.setClass(_context, ServiceCode.class);
_context.startService(i);
}
}
retirer
<intent-filter >
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
du fichier manifeste
Vous pouvez supprimer le <category Android:name="Android.intent.category.LAUNCHER"/>
du fichier AndroidManifest.xml.
Mais souvenez-vous d’ajouter <category Android:name="Android.intent.category.LEANBACK_LAUNCHER"/>
pour que le studio Android puisse compiler votre application (encore caché du lanceur) :): D