Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何防止我的应用程序请求访问照片的权限?_Ios_Objective C_Permissions_Camera_Avfoundation - Fatal编程技术网

Ios 如何防止我的应用程序请求访问照片的权限?

Ios 如何防止我的应用程序请求访问照片的权限?,ios,objective-c,permissions,camera,avfoundation,Ios,Objective C,Permissions,Camera,Avfoundation,我正在制作一个录制视频的应用程序。我正在将视频保存到应用程序的沙盒中,因此我不需要访问用户照片库。我不想让我的应用程序请求许可。然而,大约50%的应用程序打开时,它会请求访问照片的权限 我对原因的最佳猜测:我正在使用一个使AV基础更容易工作的库,它在代码中隐藏了一些触发权限对话框的特性。p> 确保对话框从不出现的最佳方法是什么?我可以通过在我的应用程序的plist中的某个地方设置一个firm NO来覆盖它吗?我是否必须彻底检查库的代码才能找到有问题的特性?如果是这样的话,识别罪犯的最佳方法是什么

我正在制作一个录制视频的应用程序。我正在将视频保存到应用程序的沙盒中,因此我不需要访问用户照片库。我不想让我的应用程序请求许可。然而,大约50%的应用程序打开时,它会请求访问照片的权限

我对原因的最佳猜测:我正在使用一个使AV基础更容易工作的库,它在代码中隐藏了一些触发权限对话框的特性。p> 确保对话框从不出现的最佳方法是什么?我可以通过在我的应用程序的plist中的某个地方设置一个firm NO来覆盖它吗?我是否必须彻底检查库的代码才能找到有问题的特性?如果是这样的话,识别罪犯的最佳方法是什么?什么最有可能触发该对话框

我正在使用的库:

迪亚夫:

DIYCam:

我触发了这样的录音:

// self.cam is a DIYCam instance
[self.cam startSession];
[self.cam captureVideoStart];
[self.cam captureVideoStop];
[self.cam stopSession];
停止这样的录音:

// self.cam is a DIYCam instance
[self.cam startSession];
[self.cam captureVideoStart];
[self.cam captureVideoStop];
[self.cam stopSession];

如果要搜索框架并获得代码,则应搜索UIImagePickerControllerSourceTypePhotoLibrary或UIImagePickerControllerSourceTypeSavedPhotosAlbum


这些是访问iPhone照片库的工具。

将DIYAVSettingSaveLibrary设置为false似乎解决了这个问题。默认设置为true

NSDictionary *options;
options          = @{ DIYAVSettingFlash              : @false,
                      DIYAVSettingOrientationForce   : @false,
                      DIYAVSettingOrientationDefault : [NSNumber numberWithInt:AVCaptureVideoOrientationLandscapeRight],
                      DIYAVSettingCameraPosition     : [NSNumber numberWithInt:AVCaptureDevicePositionBack],
                      DIYAVSettingCameraHighISO      : @true,
                      DIYAVSettingPhotoPreset        : AVCaptureSessionPresetPhoto,
                      DIYAVSettingPhotoGravity       : AVLayerVideoGravityResizeAspectFill,
                      DIYAVSettingVideoPreset        : AVCaptureSessionPreset1280x720,
                      DIYAVSettingVideoGravity       : AVLayerVideoGravityResizeAspectFill,
                      DIYAVSettingVideoMaxDuration   : @300,
                      DIYAVSettingVideoFPS           : @30,
                      DIYAVSettingSaveLibrary        : @false };

[cam setupWithOptions:options]; // Check DIYAV.h for options
[cam setCamMode:DIYAVModeVideo];

我打赌该库正在使用UIImagePickerController。@AlessandroVendruscolo是的,但从我所知,它只能运行isSourceTypeAvailable@JoshCaswell添加了库和链接,很抱歉遗漏。此外,我还将添加一些我正在使用的代码。是否有可能在构建和运行应用程序时替换应用程序的沙盒,从而将应用程序从权限链中删除?试着在不构建的情况下运行这个东西,然后得出结论,权限对话框是这里的问题。它两者都没有。但它确实有AVAsset方法,如AVAssetImageGenerator。这些会触发权限对话框吗?我不是100%确定,但据我所知,你不需要任何AVAsset代码。在我的应用程序中,我实现了我自己的照片拍摄,我根本不需要AVAsset,我的代码中没有任何AVAsset的引用。您可以尝试注释掉包含AVAsset的所有部分。您是否也考虑过使用不同的框架?我知道DIYCamera很容易使用,当我正确记忆时,如果你只是使用相机的部分,它没有要求你的照片访问许可!DIYCamera实际上是我正在使用的图书馆。我将链接添加到了我的原始帖子中。难道你不认为你可以通过DIYCAM共享你保存到沙盒的代码吗?DIYAV/DIYCAM的文档有点单薄。。。