Attivando in modo persistente o aggressivo la modalità di risparmio energetico

6

Adoro la funzione Modalità risparmio energetico. Quando sono in viaggio o in altre situazioni in cui la comunicazione affidabile è più importante dell'esperienza dell'utente, voglio averla sempre abilitata, a volte per giorni alla volta.

Tuttavia, iOS lo spegne automaticamente dopo che il telefono è stato caricato, richiedendomi di ricordarmi di entrare e riattivarlo dopo aver scollegato il telefono. Ogni tanto mi dimentico.

Esiste un modo (incluse le app di terze parti, escluso il rooting / jailbreaking) per attivare automaticamente o in modo permanente la modalità di risparmio energetico, a parte il comportamento automatico del sistema al 20%? Un modo per lasciarlo attivo all'infinito o un modo per attivarlo automaticamente prima (ad esempio al 50%) o un modo per attivarlo in base a un programma?

Se non c'è ancora un modo accessibile all'utente per farlo, sarei anche interessato a sapere se ci sono meccanismi nel sistema operativo (schemi URL, API framework) che potrebbero essere usati per controllare la modalità di risparmio energetico.

    
posta user 23.06.2016 - 22:20
fonte

1 risposta

7

Sì, l'API _CDBatterySaver nel framework CoreDuet (Private *) può essere utilizzata per attivare o disattivare la modalità di risparmio energetico.

Un esempio di chiamata, non testata:

#import <CoreDuet/CoreDuet.h>
#import <objc/runtime.h>

-(void)setLowPowerMode:(BOOL) isOn {
    _CDBatterySaver *batterySaver = [objc_getClass("_CDBatterySaver") batterySaver];
    int nextState;

    if(isOn) {
        nextState = 1;
    } else {
        nextState = 0;
    }

    if([batterySaver setMode:nextState]) {
        NSLog(@"Set power mode state");
    }
}

Lo racchiuderei in un'app con un'attività in background per controllare la modalità di risparmio energetico (entrambe le API ben documentate). Questo può essere fatto con Xcode in quanto Apple consente la creazione e l'installazione di app sul telefono senza richiedere una licenza sviluppatore (IIRC).

* Vedi risposta alla domanda come importare framework privati in xcode . Nota: i file di intestazione possono essere trovati su GitHub senza la necessità di un dispositivo jailbroken.

    
risposta data 27.06.2016 - 18:11
fonte

Leggi altre domande sui tag