在我的项目中,我尝试添加两件事:
但是当我尝试在真实设备上测试我的应用程序时,该应用程序未显示任何权限,而当我选择摄像头时,该应用程序退出却没有在日志控制台中显示错误消息?
对于info.plist,我使用以下两行:
public class StringTrimmingMessageInspector : IDispatchMessageInspector
{
public object AfterReceiveRequest(ref Message request,
IClientChannel channel, InstanceContext instanceContext)
{
if(request.Header.Action!=null) // Issue : this property is always null
{
}
}
return null;
}
public void BeforeSendReply(ref System.ServiceModel.Channels.Message reply, object correlationState)
{
}
并添加一张我使用此代码的照片:
<key>NSCameraUsageDescription</key>
<string>$(PRODUCT_NAME) camera use</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>$(PRODUCT_NAME) photo use</string>
谢谢。
答案 0 :(得分:1)
在您的addNewPerson()
方法中,在显示警报之前,您应该检查用户是否已授予访问其相机的权限,您可以通过以下方法进行操作:
if AVCaptureDevice.AVCaptureDevice.authorizationStatus(AVMediaTypeVideo) == AVAuthorizationStatus.Authorized {
// Already Authorized
} else {
AVCaptureDevice. requestAccess(AVMediaTypeVideo, completionHandler: { (granted: Bool) -> Void in
if granted == true {
// User granted
} else {
// User rejected
}
})
}
答案 1 :(得分:0)
只需提一下,在iOS 11中不需要使用UIImagePicker进行摄像头访问
这是rickster's post中粘贴粘贴的片段。
在iOS 11中,UIImagePickerController与您的应用程序分开运行。这意味着:
您的应用看不到用户的整个照片库-它仅对用户在图像选择器中选择的任何资产都具有只读访问权限。 由于(1),您的应用不需要标准的隐私授权即可访问照片库。用户明确选择一个 在您的应用中使用的特定资产(或多个),这意味着用户已授予您的应用读取有关资产的权限。