Modification de la luminosité du rétroéclairage sur iPhone Programmatically

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

  •  21-08-2019
  •  | 
  •  

Question

Est-ce que le kit de développement fournissent un moyen de changer la luminosité du rétro-éclairage, ou la désactiver temporairement?

Était-ce utile?

La solution

Non. Ce n'est pas disponible dans le SDK. Si c'est quelque chose que vous pensez serait utile, je vous suggère une demande d'amélioration .

Autres conseils

Je suis en train de faire la même chose. Comme il arrive il y a des postes de numéro là-bas dans les internets avec des « solutions » pour cela.

La plus détaillée est succincte

Le problème est que je l'ai essayé ces derniers et tous comptent sur appeler cette fonction

GSEventSetBacklightLevel();

qui a besoin de cette tête à importer

#import <GraphicsServices/GraphicsServices.h>

Et que l'importation échoue dans le SDK de reporting que le fichier d'en-tête ne peut pas être trouvé.

Je l'ai cherché une solution, mais ne l'ai pas trouvé. On parle de « construire la toolchain » (pour la meilleure description que j'ai trouvé voir ici ) mais cela semble impliquer sans passer par le SDK tout à fait. drastique Jolie.

Résumé: Il est possible, mais pas avec le SDK iPhone norme. J'imagine une mise à jour du SDK viendra bientôt qui devrait permettre cela.

Faites-moi savoir si vous trouvez une autre solution.

-(void)changeLight{

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

appeler la méthode ci-dessus en utilisant

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

vous pouvez ajouter le cadre privé par simple glisser-déposer à votre projet Xcode de /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/System/Library/PrivateFrameworks/GraphicsServices.framework.

Ajoutez également #import en-tête "GraphicsServices.h" dans votre fichier .h .. Rappelez-vous: puisque vous utilisez cadre privé, vous demande rejettera en push app store

Dans mon SDK (5.0.1), il semble que « GraphicsServices.h » est plus là, mais vous pouvez déclarer vous-même comme ceci:

void GSEventSetBacklightLevel(float level);

Notez que l'éditeur de liens se plaindra, sauf si vous incluez le GraphicsServices.framework-cadre dans votre projet.

A propos de votre question au sujet de tourner le rétro-éclairage, je trouve que vous pouvez le faire en passant un nombre négatif très important à GSEventSetBacklightLevel, comme ceci:

GSEventSetBacklightLevel(-INFINITY);

Dans mes tests ce sera complètement noir sur l'écran.

Rappelez-vous que cela pourrait encore causer le burn-in dans les pixels LCD si vous affichez des graphiques statiques, même lorsque le rétro-éclairage est éteint. Et que cet appel entraînera le rejet si submitteed à l'App Store.

essayez ce code. J'espère que cela aide ...

  

// dans viewWillAppear

     

float prevBrightnessLevel = [UIScreen mainScreen] .brightness;

     

[UIScreen mainScreen] .brightness = 1,0;

     

// dans viewWillDisappear

     

[UIScreen mainScreen] = .brightness   prevBrightnessLevel;

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top