总的来说,我的应用程序适用于所有iOS设备,但我有一个功能,只适用于iPhone 4的,因此,如果用户没有iPhone 4,我想显示一个警报,让他们知道,这个功能不会在他们的设备上工作?我该怎么做?我在检查这个装置有没有闪光灯
rt4zxlrg1#
如果你不使用UIImagePicker:
UIImagePicker
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; BOOL hasFlash = [device hasFlash];
字符串还有一个[device hasTorch]如果你需要它。
[device hasTorch]
rqenqsqc2#
你试过各种UIDevice方法吗?也就是说,很可能有一种更简单的方法,这取决于你的可选功能需要什么特定的功能,但是不知道这是什么,很难给予一个具体的例子。
注意:出于未来兼容性的原因,我还建议不要基于检测到的设备本身假设功能集。更新
在相机闪光灯方面,我知道你可以使用UIImagePickerController的isFlashControlableForCameraDevice:方法。(你可能想在通过isCameraDeviceAvailable:方法首先验证相机的存在之后调用这个方法。)
wztqucjr3#
您不需要知道您正在运行的设备,只需检查您想要使用的功能是否可用,如果不可用则显示警报。如果您让我们知道您正在寻找什么特定功能,我们可以帮助您以特定的方式检查该功能。不过,我自己的建议是,弹出一个对话框说,“如果你有一个新的手机,你就可以做到这一点!”这真的只是摩擦你的用户的脸,事实上,他们有一个旧手机,现在不是吗?一个更好的处理方法是:1)在你的AppStore页面上明确说明某些功能在非iPhone 4手机上不可用; 2)让你的应用程序的行为在非iPhone 4s上优雅地降级。
smtd7mpg4#
对于Swift 4.0
let device = AVCaptureDevice.default(for: .video) var hasFlash: Bool! = false hasFlash = device?.hasFlash
字符串
7nbnzgx95#
这个问题有点模糊,但如果你遇到它,这里有一些最新的信息。首先,您可以通过info.plist文件中的以下UIRequiredDeviceCapabilities值要求设备具有闪存。
info.plist
UIRequiredDeviceCapabilities
camera-flash
字符串如果您的应用需要(或明确禁止)使用相机闪光灯拍照或拍摄视频,请包含此键。应用使用UIImagePickerController接口来控制此功能的启用。Documentation link接下来,您可以检查您的UIImagePickerController,看看是否有可用的。这很有用,因为不是每个设备上的每个相机都有闪光灯。
UIImagePickerController
isFlashAvailable(for:)
型指示给定相机是否具有闪光灯照明功能。Documentation link的或者,如果您使用的是AVFoundation,则可以查询AVCaptureDevice:
AVFoundation
AVCaptureDevice
captureDevice.hasFlash
型指示捕获设备是否有闪存。Documentation link的
ct3nt3jp6#
溶液(在BN-C中):
- (bool)hasDeviceLED { bool hasFlash = NO; AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType: AVMediaTypeVideo]; if (device != nil) { hasFlash = device.hasFlash; } return hasFlash; }
字符串在iPhone和iPad上测试成功。
6条答案
按热度按时间rt4zxlrg1#
如果你不使用
UIImagePicker
:字符串
还有一个
[device hasTorch]
如果你需要它。rqenqsqc2#
你试过各种UIDevice方法吗?也就是说,很可能有一种更简单的方法,这取决于你的可选功能需要什么特定的功能,但是不知道这是什么,很难给予一个具体的例子。
注意:出于未来兼容性的原因,我还建议不要基于检测到的设备本身假设功能集。
更新
在相机闪光灯方面,我知道你可以使用UIImagePickerController的isFlashControlableForCameraDevice:方法。(你可能想在通过isCameraDeviceAvailable:方法首先验证相机的存在之后调用这个方法。)
wztqucjr3#
您不需要知道您正在运行的设备,只需检查您想要使用的功能是否可用,如果不可用则显示警报。
如果您让我们知道您正在寻找什么特定功能,我们可以帮助您以特定的方式检查该功能。
不过,我自己的建议是,弹出一个对话框说,“如果你有一个新的手机,你就可以做到这一点!”这真的只是摩擦你的用户的脸,事实上,他们有一个旧手机,现在不是吗?一个更好的处理方法是:1)在你的AppStore页面上明确说明某些功能在非iPhone 4手机上不可用; 2)让你的应用程序的行为在非iPhone 4s上优雅地降级。
smtd7mpg4#
对于Swift 4.0
字符串
7nbnzgx95#
这个问题有点模糊,但如果你遇到它,这里有一些最新的信息。
首先,您可以通过
info.plist
文件中的以下UIRequiredDeviceCapabilities
值要求设备具有闪存。字符串
如果您的应用需要(或明确禁止)使用相机闪光灯拍照或拍摄视频,请包含此键。应用使用UIImagePickerController接口来控制此功能的启用。
Documentation link
接下来,您可以检查您的
UIImagePickerController
,看看是否有可用的。这很有用,因为不是每个设备上的每个相机都有闪光灯。型
指示给定相机是否具有闪光灯照明功能。
Documentation link的
或者,如果您使用的是
AVFoundation
,则可以查询AVCaptureDevice
:型
指示捕获设备是否有闪存。
Documentation link的
ct3nt3jp6#
溶液(在BN-C中):
字符串
在iPhone和iPad上测试成功。