Appcelerator中的相机权限

6
我正在使用 Appcelerator Studio 开发我的应用程序。在这个应用程序中,我从相机拍照并将它们上传到我的服务器。对于 Android 6,我要求用户运行时授权使用相机。我的代码运行良好。但是,当我请求运行时相机权限时,它会询问三个权限:允许应用程序拍照和录制视频,应用程序将访问相册,应用程序将使用相机位置。我的问题是,为什么我只使用相机拍照却看到了所有这些权限,如何摆脱它们?
代码片段:
if (Ti.Media.hasCameraPermissions()) {
        openCamera();
    } else {
        Ti.Media.requestCameraPermissions(function(e) {
            if (e.success) {
                openCamera();
            } else {
                alert('You denied permission');
            }
        });
    }

Thanks in advance for help.


只是想澄清一下,你是在谈论新的Android 6权限系统,对吗?我有一个几乎与你的代码完全相同的应用程序,在其中我会得到两个权限对话框。其中一个说“允许APPNAME访问您设备上的照片、媒体和文件?”另一个说“允许APPNAME拍照和录像?”我不熟悉“使用相机位置”的权限。但我的应用程序会在启动时请求位置以供其他目的使用,所以也许这就是为什么我请求相机权限时没有看到它的原因? - Jason Priebe
我认为这就是它被设计成的工作方式,...而且我认为你是对的@JasonPriebe :-) - John Dalsgaard
1
检查 Ti 移动 SDK 中的 MediaModule.java(https://github.com/appcelerator/titanium_mobile/blob/ddf5400a61ec4b481d8af4aac02d3c385d30248f/android/modules/media/src/java/ti/modules/titanium/media/MediaModule.java)表明 requestCameraPermissions() 调用仅请求 Manifest.permission.CAMERA 和 Manifest.permission.READ_EXTERNAL_STORAGE。没有关于位置的信息,所以我不确定 OP 是如何获得位置权限提示的(除非在 openCamera() 中请求了位置权限)。 - Jason Priebe
@Jason 是的,这是关于Android 6权限的问题。 而且,我正在使用位置服务,并为它们单独设置了权限。我更关心的是为什么这个权限与相机位置有关。 - In-Vogue
可能是在Android 7.0.0中无法设置权限的重复问题。 - A. A. Sebastian
1个回答

0

这可能是因为您尚未在Titanium上授予位置权限,因此检查会一次性请求权限。请在授予位置权限后再尝试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接