Ionic Diagnostic Plugin 总是 returns "DENIE_ALWAYS" on android
Ionic Diagnostic Plugin always returns "DENIE_ALWAYS" on android
我正在使用 Ionic 4,我的所有 IOS 诊断权限都在工作..
但是在 android 上,如果我请求访问任何内容(例如 CAMERA)。它 returns 一个 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();
}
});
经过数小时的搜索,我终于找到了答案..
在平台下>android>AndroidManifest.xml您需要确保这包括您的所有权限
<uses-permission android:name="android.permission.CAMERA" />
但是由于某些原因,这个 AndroidManifest 与
下使用的不一样
平台 > android> app> src > main> AndroidManifest.xml
并且构建也没有更新该文件。所以我将正确的 AndroidManifest.xml 复制到该路径并开始工作。
这比本来应该的要难得多。我不知道为什么添加和删除平台或重建不会更新该清单。
我正在使用 Ionic 4,我的所有 IOS 诊断权限都在工作..
但是在 android 上,如果我请求访问任何内容(例如 CAMERA)。它 returns 一个 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();
}
});
经过数小时的搜索,我终于找到了答案..
在平台下>android>AndroidManifest.xml您需要确保这包括您的所有权限
<uses-permission android:name="android.permission.CAMERA" />
但是由于某些原因,这个 AndroidManifest 与
下使用的不一样平台 > android> app> src > main> AndroidManifest.xml
并且构建也没有更新该文件。所以我将正确的 AndroidManifest.xml 复制到该路径并开始工作。
这比本来应该的要难得多。我不知道为什么添加和删除平台或重建不会更新该清单。