整体而言,我的应用程序适用于所有iOS设备但是我的功能仅适用于iPhone 4,因此如果用户没有iPhone 4,我想显示警告,让他们知道此功能不起作用在他们的设备上?
我该怎么做?
我正在尝试检查设备是否有相机闪光灯
答案 0 :(得分:10)
如果您没有使用UIImagePicker
:
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
BOOL hasFlash = [device hasFlash];
如果您需要,还有[device hasTorch]
。
答案 1 :(得分:8)
您是否尝试过各种UIDevice方法?也就是说,这很可能是一种更简单的方法,具体取决于您的可选功能需要什么特定功能,但不知道这是什么,很难给出一个具体的例子。
N.B。:我还建议不要基于检测到的设备本身设置功能集,以便将来兼容。
<强>更新强>
就相机闪光而言,我知道你可以使用UIImagePickerController的isFlashAvailableForCameraDevice:方法。 (您可能希望在首次通过isCameraDeviceAvailable:方法验证相机的存在后调用此方法。)
答案 2 :(得分:3)
您无需知道正在运行的设备,检查您要使用的功能是否可用,如果不可用则显示警告。
如果您告诉我们您要查找的具体功能,我们可以提供检查该功能的具体方法。
虽然,我在这里建议,弹出一个对话框,上面写着:“如果你有一部新手机,你就可以做到这一点!”真的只是在揉搓你的用户的脸事实上,他们有一部旧电话,现在不是吗?处理它的一个更好的方法是1)在你的AppStore页面中明确表示某些功能在非iPhone 4手机上不可用; 2)使你的应用程序的行为在非iPhone 4上优雅地降低。
答案 3 :(得分:0)
这个问题有点尘土飞扬,但是如果您遇到它,这里是一些最新信息。
首先,您可以通过UIRequiredDeviceCapabilities
文件中info.plist
的以下值来要求设备具有闪存。
camera-flash
如果您的应用需要(或特别是, 禁止)使用相机闪光灯拍照或 拍摄视频。应用程序使用UIImagePickerController接口来 控制此功能的启用。
接下来,您可以检查自己的UIImagePickerController
,看看是否有空。这很有用,因为并非每个设备上的每个摄像头都有闪光灯。
isFlashAvailable(for:)
指示给定的相机是否具有闪光灯照明功能。
或者,如果您使用的是AVFoundation
,则可以查询AVCaptureDevice
:
captureDevice.hasFlash
指示捕获设备是否具有闪光灯。
答案 4 :(得分:0)
快速4.0
apiVersion: apps/v1
kind: Deployment
metadata:
name: nanoserver-iis
spec:
replicas: 1
selector:
matchLabels:
app: aci-helloworld
template:
metadata:
labels:
app: nanoserver-iis
spec:
containers:
- name: nanoserver-iis
image: microsoft/iis:nanoserver
ports:
- containerPort: 80
nodeSelector:
kubernetes.io/hostname: virtual-kubelet-aci-connector-windows-westeurope
tolerations:
- key: virtual-kubelet.io/provider
operator: Equal
value: azure
effect: NoSchedule