Je travaille sur une application où j'utilise Google Push Notification. L'application reçoit une notification lorsqu'elle s'exécute sur le téléphone Xiaomi, sinon, lorsqu'elle est tuée, elle ne reçoit pas de notification.
Si nous voulons recevoir une notification si l'application est supprimée, nous devons autoriser manuellement l'application de redémarrage automatique à partir de l'application de sécurité de xiaomi. Je veux une astuce pour le faire par programme sans demander à l'utilisateur. Est-ce qu'il y a un moyen de faire ça ?
Il y a cinq paramètres qui doivent être faits manuellement en cas de xiaomi pour exécuter correctement n'importe quelle application. J'ai fait beaucoup de recherches à ce sujet et il n'y a aucun moyen de corriger ces paramètres par programme. Ce sont les paramètres:
Il existe de nombreux autres appareils dans lesquels les réglages manuels doivent être effectués pour que l'application fonctionne comme prévu, par exemple Lenovo, certains appareils Micromax. Les entreprises imposent ce type de restrictions sur les activités de fond pour améliorer la durée de vie globale de la batterie. Certaines applications comme Facebook et WhatsApp fonctionnent correctement car elles pourraient avoir été incluses en tant qu'applications système.
Après MIUI 6 & 7:
Le mode d'économie d'énergie de MIUI est réglé par défaut sur "Standard" (l'accès en arrière-plan aux services de localisation et au réseau sera restreint)
Où placer:
Paramètres -> Paramètres supplémentaires -> Batterie et performances -> Gérer l'utilisation de la batterie des applications -> Modes d'économie d'énergie -> Désactivé (MIUI ne restreindra pas les activités en arrière-plan)
Quant à ma compréhension une fois que vous avez effacé les applications ou effacé la mémoire dans le menu des applications récentes, xiaomi (ou MIUI rom) forcera la fermeture de tous les services et de la mémoire liés à cette application similaire à l'utilisateur va dans les paramètres et force l'arrêt de l'application,
Ce lien parle du même problème, donc tous les récepteurs et services de diffusion seront arrêtés à moins qu'ils ne soient redémarrés par l'utilisateur, de sorte que la notification ne sera pas reçue,
Cependant, vous pouvez simplement activer le démarrage automatique pour les autorisations de votre application dans les paramètres et si cela ne fonctionne toujours pas, essayez de créer un service qui redémarre par lui-même et activez démarrage automatique dans les paramètres, AutoStart est très important dans MIUI, jusqu'à ce qu'il soit activé, toutes les notifications ou activités d'application seront fermées de force et ne démarreront jamais
J'ai rencontré un problème similaire et l'ai résolu en ajoutant un récepteur BOOT_COMPLETED à mon application.
Ajoutez ce qui suit au manifeste:
<receiver
Android:name=".receivers.BootReceiver"
Android:enabled="true">
<intent-filter>
<action Android:name="Android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
Créez ensuite votre classe BootReceiver
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("Android.intent.action.BOOT_COMPLETED")) {
Intent startServiceIntent = new Intent(context, FBTokenService.class);
context.startService(startServiceIntent);
Intent notificationServiceIntent = new Intent(context, FBNotificationService.class);
context.startService(notificationServiceIntent);
}
}
}
Cela devrait fonctionner avec cela.