2010-12-12 4 views
4

全体的に私のアプリはすべてのiOSデバイスで動作しますが、iPhone 4を搭載していない場合はiPhone 4のみで動作する機能がありますこの機能がデバイスで動作しないことを知らせるアラートを表示しますか?カメラのフラッシュがiOSデバイス上で利用可能かどうかを判断する方法

どうすればいいですか?

私は、デバイスが

+0

どのような特定の機能が必要ですか? –

+0

私はこの機能のためにカメラフラッシュが必要です – cgossain

+0

私は自分の答えを更新しました。お役に立てれば。 –

答えて

8

は、さまざまなUIDevice方法を試してみましたが、カメラのフラッシュを持っているかどうかを確認しようとしていますか?つまり、オプションの機能に必要な特定の機能に応じて、最も簡単な方法がありますが、これが具体的な例を挙げるのが難しいかどうかはわかりません。

N.B .:今後の互換性のため、検出されたデバイス自体に基づいて機能セットを推測しないことをお勧めします。方法:

カメラのフラッシュの面ではUPDATEは

、私はあなたがUIImagePickerControllerさんisFlashAvailableForCameraDeviceを使用することができます知っています。 (カメラの存在を最初に確認した後、isCameraDeviceAvailable:メソッドを使用して呼び出すことをお勧めします)

+0

特定のデバイスをチェックすることは、決して正しい答えではありません。通常、機能の有無を確認する必要があります。 – kubi

+0

@Kuba - Yupは、あなたのメッセージを残した時に私の答えを編集していたので、質問に添付された私のコメントにOPを頼んだのです。 :-) –

+0

私は彼らがカメラフラッシュを持っているかどうかチェックしようとしています – cgossain

2

実行中のデバイスを知る必要はありません。使用したい場合は使用可能で、そうでない場合は警告を表示します。

特定の機能をお探しの場合は、特定の方法でその機能を確認することができます。

私の助言はここにありますが、新しい電話があれば、これを行うことができるだろうというダイアログボックスが現れます。は本当にあなたの顔をこすっています彼らは古い電話を持っている、今それではない?それを処理するより良い方法は、1)あなたのAppStoreページで、特定の機能がiPhone 4以外の電話機では利用できないことを明確にし、2)iPhone 4以外でアプリの動作が正常に低下するようにする。

+0

私は彼らがカメラフラッシュを持っているかどうかを確認しようとしています – cgossain

+0

+1同意する必要はありません。これはマーケティング宣伝で最もよく扱われます。 –

10

あなたがUIImagePickerを使用していない場合:あなたがそれを必要とする場合も[device hasTorch]あり

AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; 
BOOL hasFlash = [device hasFlash]; 

関連する問題