Modificare la Luminosità della Retroilluminazione su iPhone a livello di programmazione

StackOverflow https://stackoverflow.com/questions/366889

  •  21-08-2019
  •  | 
  •  

Domanda

Il SDK fornisce alcun modo per modificare la luminosità della retroilluminazione, o disattivarlo temporaneamente?

È stato utile?

Soluzione

No. Questo non è disponibile nel SDK. Se si tratta di qualcosa che si pensa sarebbe utile, vi consiglio di un file di richiesta di miglioramento .

Altri suggerimenti

Sto cercando di fare la stessa cosa. Come accade ci sono un numero messaggi là nelle internet con "soluzioni" per questo.

Il più dettagliato è qui Questo è più succinta

Il problema è che ho provato questi e tutti si basano su di chiamare questa funzione

GSEventSetBacklightLevel();

che richiede questa intestazione da importare

#import <GraphicsServices/GraphicsServices.h>

E che l'importazione non riesce nel SDK riferendo che il file di intestazione non può essere trovato.

Ho cercato qualche soluzione, ma non l'ho trovato. V'è una certa parlare di "costruire la toolchain" (per la descrizione migliore che ho trovato vedere qui ), ma che sembra coinvolgere bypassando l'SDK del tutto. Abbastanza drastico.

Sommario: E 'possibile, ma non con l'iPhone SDK standard. Immagino un aggiornamento per l'SDK arriverà presto che dovrebbe consentire di esso.

Fatemi sapere se trovate qualche altra soluzione.

-(void)changeLight{

    GSEventSetBacklightLevel(float number);//number between 0.0 - 1.0
}

chiamare il metodo di cui sopra utilizzando

[self performSelector:@selector(changeLight) withObject:nil afterDelay:0.0];

è possibile aggiungere il quadro privata da solo trascinare e rilasciare il tuo progetto xcode da /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/System/Library/PrivateFrameworks/GraphicsServices.framework.

Anche aggiungere #import "GraphicsServices.h" intestazione per .h file..ricordate:dal momento che si sta utilizzando, nell'ambito dell'applicazione è rifiuterà in app store push

Nel mio SDK (5.0.1) sembra che "GraphicsServices.h" non c'è più, ma si può dichiarare voi stessi in questo modo:

void GSEventSetBacklightLevel(float level);

Si noti che il linker si lamenterà, a meno che non si include il GraphicsServices.framework quadro nel progetto.

A proposito di tua domanda di trasformare la retroilluminazione, ho scoperto che si può fare passando un gran numero negativo per GSEventSetBacklightLevel, in questo modo:

GSEventSetBacklightLevel(-INFINITY);

Nel mio test questo sarà completamente nero lo schermo.

Ricordate che questo potrebbe ancora causare burn-in nei pixel LCD se si visualizza la grafica statica, anche quando la retroilluminazione è spenta. E che questa chiamata causerà rifiuto, se submitteed di App Store.

provare questo codice. Spero che aiuta ...

  

// in viewWillAppear

     

galleggiare prevBrightnessLevel = .Brightness [UIScreen mainScreen];

     

[UIScreen mainScreen] .Brightness = 1,0;

     

// in viewWillDisappear

     

[UIScreen mainScreen] .Brightness =   prevBrightnessLevel;

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top