2009-07-27 23 views
7

iPhoneをスリープ状態にすることなくアプリケーションを実行する必要があります。しかし、私は画面をオフにしたいと思います。あなたが電話で話すとき、Phoneアプリケーションで同様のことが行われます。画面をオフにする

iPhoneが次のようにスリープ状態になるのを防ぎます: [[UIApplication sharedApplication] setIdleTimerDisabled:YES];

しかし、どのように画面をオフにすることができますか?そして、ユーザーが画面に触れたとき、それを元に戻すにはどうしたらいいですか?

ありがとうございました。

答えて

5

更新:このメソッドは廃止予定です。以下のTimothéeBoucherのコメントを参照してください。


近接センサーを使用して画面をオフにすることはできますが、画面をスリープ状態にする一般的な方法はありません。

-[UIApplication setProximitySensingEnabled:(BOOL)] 
+2

私のコメントの時点で、誰かがこれを読んでいるので、このメソッドは推奨されなくなりました。アップルのドキュメントから: "非推奨。" UIDevice "クラスのproximityMonitoringEnabledプロパティとproximityStateプロパティが置き換えられます。" –

0

私はそれが公共の機能だとは確信できませんが、あなたの顔の近くに電話があるかどうかを感知できる近接センサがあることを知っています。掘り下げて、そのセンサーが公開されているかどうかを調べ、次にどの機能が画面を消しているのかを調べてみてください。

0

プログラムのオン/オフを切り替える、またはディスプレイの明るさを変更するための公式(公開)プログラム方法はありません。いくつかのアプリケーションでは、透明な黒いビューをスーパービューに重ねて表示し、不透明度を変更して明るさの変化を表示することで輝度の変更を「偽造」します(バックライトはオンになるため、画面が消えていて、電池を節約できないように見えます)。

0

ya thairは、文書化されていない関数GSEventSetBacklightFactor(1)を使用できる方法です。画面が暗くなります。 1を0に置き換えると、画面はオフになります。あなたはホームボタンを押す必要があります。これを使用するためには、あなたはフレームワークgraphicserviceフレームワークをインポートする必要があります

+0

"GSEventSetBacklightFactor(1);でオンにすることはできません。 3.1.2フレームワークを持つデバイスで自宅のボタンでさえ助けにはなりませんが、デバイスを再起動するだけです(ホーム+スリープ10秒)。それはシミュレータ上で動作します。デバイスは分解されていません。 – slatvick

+0

@slatvick - あなたは 'jailbroken'を意味し、' uncracked'を意味しません。私はそれがひどくならないことを願っています。 – Moshe

2

まあ、あなたは完全に明るさをオフにすることができます。それは画面をロックせず、デバイスはまだ表示されますが、LCDのバックライトは見えなくなります。

- (void) changeSystemBrightness: (NSString *) switchValue { 

if ([[UIScreen mainScreen] respondsToSelector:@selector(setBrightness:)]) { 
    if (switchValue) { 
     if ([switchValue isEqualToString:@"saveDefault"]) { 
      // 
      self.userBrightness = [UIScreen mainScreen].brightness; 
      //NSLog(@"User Brightness: %1.1f", userBrightness); 
     } else if ([switchValue isEqualToString:@"restoreDefault"]) { 
      [UIScreen mainScreen].brightness = self.userBrightness; 
      //NSLog(@"Restore Brightness: %1.1f", userBrightness); 
     } else if ([switchValue isEqualToString:@"min"]) { 
      //[UIScreen mainScreen].brightness = 0; 
     } else if ([switchValue isEqualToString:@"max"]) { 
      [UIScreen mainScreen].brightness = 1; 
     } else if ([switchValue isEqualToString:@"mid"]) { 
      [UIScreen mainScreen].brightness = 0.5; 
     } 
    } else { 
     [UIScreen mainScreen].brightness = self.userBrightness; 
     //NSLog(@"Restore Brightness: %1.1f", userBrightness); 
    } 
} 

}

まずあなたは、単に画面をオフにすることができ、ユーザのシステムの輝度レベルにその後

[self changeSystemBrightness:@"saveDefault"]; 

を保存:

[self changeSystemBrightness:@"min"]; 

は、明るさを復元します。

[self changeSystemBrightness:@"restoreDefault"]; 

iOSは、画面が正常に(ロック/ロック解除されて)いったん解除されると、デフォルトのシステムの輝度を復元して、それを検出して処理する必要があります。

関連する問題