我正在使用Ionic 4,并且我所有的IOS诊断权限都在起作用。
但是在android上,如果我请求访问任何内容(例如说CAMERA)。它返回DENIE_ALWAYS响应。如果我进入设置>应用程序设置>权限这就是说该应用程序不需要任何权限。我已验证权限存在于androidManifest.xml中。但是我无法提示用户输入权限。
任何帮助,将不胜感激。
示例代码
this.diagnostic.getCameraAuthorizationStatus()
.then( async (status) => {
debugger;
if (status === this.diagnostic.permissionStatus.GRANTED
|| status === this.diagnostic.permissionStatus.GRANTED_WHEN_IN_USE) {
this.appSettings.camera.enabled = true;
this.updateAppSettings();
} else if (status === this.diagnostic.permissionStatus.NOT_REQUESTED) {
this.diagnostic.requestCameraAuthorization()
.then((res) => {
// HERE IS ALWAYS DENIE_ALWAYS WITHOUT EVER PROMPTING USER
debugger;
if (res === this.diagnostic.permissionStatus.GRANTED
|| res === this.diagnostic.permissionStatus.GRANTED_WHEN_IN_USE) {
this.appSettings.camera.enabled = true;
this.updateAppSettings();
} else {
this.appSettings.camera.enabled = false;
this.updateAppSettings();
}
});
答案 0 :(得分:0)
经过数小时的搜索,我终于找到了答案。
在平台下> android> AndroidManifest.xml,您需要确保其中包含所有权限
<uses-permission android:name="android.permission.CAMERA" />
但是由于某种原因,这个AndroidManifest与下面使用的AndroidManifest不同
平台> android> app> src> main> AndroidManifest.xml
并且构建也没有更新该文件。因此,我将正确的AndroidManifest.xml复制到了该路径,并且开始工作。
这比应该做的难。.我不知道为什么添加和删除平台或重建不会更新该清单。