Comment rendre l'appareil android toujours en mode veille?
Après le succès de la racine de l'appareil. Maintenant, je dois faire le dispositif toujours dans l'état de veille, c'est-à-dire toujours la visibilité de L'UI et pas d'écran noir ou n'importe quels écrans daydream. Pour ce faire, je pense que je dois accomplir ce qui suit :
- pas d'écran de verrouillage-désactivé
- Sommeil à "jamais"
- Daydream réglé sur "off"
ce que j'ai trouvé est tout au sujet de la couche application c.-à-d. Il y a des applications qui peuvent faire des tâches ci-dessus. Mais puisque mon mobile est enraciné Je veux atteindre avec système de fichiers de sorte que même si d'autres applications essayent de changer les fonctionnalités ci-dessus, elles ne devraient pas pouvoir le faire.
7 réponses
- Activer le mode développeur
- allez à options pour les Développeurs
- activer "Rester éveillé"
votre cas d'utilisation principale semble être comme suit (à partir de votre question)
même si d'autres applications essayent de changer les fonctionnalités ci-dessus alors ils ne devraient pas être en mesure de le faire
vous pouvez écrire un service système pour déclencher le PowerManager.WakeLock à intervalles réguliers. ( Source)
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
wl.acquire();
// screen and CPU will stay awake during this section
wl.release();
pour optimiser le service, vous pouvez également essayer de régler le temps d'arrêt de l'écran le maximum possible à nouveau à intervalles réguliers de sorte que même si changé manuellement il est remis. (pas sûr de combien max est admis, vous aurez besoin de vérifier avec essais et erreurs)
/**
* set screen off timeout
* @param screenOffTimeout int 0~6
*/
private void setTimeout(int screenOffTimeout) {
int time;
switch (screenOffTimeout) {
case 0:
time = 15000;
break;
case 1:
time = 30000;
break;
case 2:
time = 60000;
break;
case 3:
time = 120000;
break;
case 4:
time = 600000;
break;
case 5:
time = 1800000;
break;
default:
time = -1;
}
android.provider.Settings.System.putInt(getContentResolver(),
Settings.System.SCREEN_OFF_TIMEOUT, time);
}