iQOO Neo8 Pro无法开启照片与视频的权限
iQOO Neo8 Pro无法开启照片与视频的权限
示例代码:
if (plus.os.name == 'Android') {
console.log(permissionID);
let _permissionID = 'android.permission.' + permissionID;
plus.android.checkPermission(
_permissionID,
(granted) => {
if (granted.checkResult == -1) {
//还未授权当前查询的权限,打开权限申请目的自定义弹框
_this.showPopup = true;
_this.$nextTick(() => {
setTimeout(() => {
_this.ani = '' + _this.type;
}, 30);
});
}
},
(error) => {
console.log(error.message);
}
);
plus.android.requestPermissions([_permissionID], (e) => {
//关闭权限申请目的自定义弹框
_this.ani = '';
_this.$nextTick(() => {
setTimeout(() => {
_this.showPopup = false;
}, 0);
});
if (e.granted.length > 0) {
//当前查询权限已授权,此时可以通知页面执行接下来的操作
_this.$emit('changeAuth');
}
if (e.deniedAlways.length > 0) {
//当前查询权限已被永久禁用,此时需要引导用户跳转手机系统设置去开启
// #ifdef APP-NVUE
_this.openPopup('goOpenPermissionRef');
return;
uni.showModal({
title: '温馨提示',
content: '还没有该权限,立即去设置开启?',
cancelText: '取消',
confirmText: '去设置',
showCancel: true,
confirmColor: '#000',
cancelColor: '#666',
success: (res) => {
if (res.confirm) {
_this.goSetting();
}
}
});
// #endif
// #ifndef APP-NVUE
_this.openPopup('goOpenPermissionRef');
// #endif
}
});
}
操作步骤:
- 用vivo Neo8 Pro 调用照片与视频
预期结果:
- 用vivo Neo8 Pro 调用照片与视频 成功调用或提示开启权限,开启权限后可以成功调用
实际结果:
- 用vivo Neo8 Pro 调用照片与视频 完全开启不了
bug描述:
vivo Neo8 Pro调出相机权限可以,照片与视频权限不行。但是之前2024年的基座是可以的。2025年新打包的基座不管是调试或打安装包都不行。 其他机型如小米、红米等正常,vivo其他机型也正常
附件:
出一个完整的demo,我这边找同款手机试一下,上面示例中的部分变量(如:permissionID)我这边无法对应。
用标准基座是可以的,自定义基座就不行
plus.android.requestPermissions([‘android.permission.WRITE_EXTERNAL_STORAGE’], (e) => {
console.log(e);
if (e.granted.length > 0) {
uni.chooseImage({});
}
if (e.deniedAlways.length > 0) {
var Intent = plus.android.importClass(‘android.content.Intent’);
var Settings = plus.android.importClass(‘android.provider.Settings’);
var Uri = plus.android.importClass(‘android.net.Uri’);
var mainActivity = plus.android.runtimeMainActivity();
var intent = new Intent();
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
var uri = Uri.fromParts(‘package’, mainActivity.getPackageName(), null);
intent.setData(uri);
mainActivity.startActivity(intent);
}
});
https://ask.dcloud.net.cn/question/197843
说是被废弃了
Android 33 以上设备
WRITE_EXTERNAL_STORAGE 权限已废弃。需要修改为
从代码和描述来看,这是iQOO Neo8 Pro机型上特有的权限问题。建议检查以下几点:
- 确认manifest.json中已正确声明所需权限:
"android-permission": [
"android.permission.READ_EXTERNAL_STORAGE",
"android.permission.WRITE_EXTERNAL_STORAGE",
"android.permission.CAMERA"
]
- 对于Android 11+设备,需要特别注意作用域存储限制。可以尝试添加以下配置:
"android": {
"compileSdkVersion": 30,
"targetSdkVersion": 30
}
- 针对vivo系机型特有的权限管理,建议在代码中添加机型判断:
if(plus.os.vendor.toLowerCase().indexOf('vivo') !== -1) {
// 特殊处理vivo机型
}
-
检查是否使用了正确的权限ID,照片视频权限通常对应READ_EXTERNAL_STORAGE。
-
可以尝试使用uni-app的API替代原生方式:
uni.authorize({
scope: 'scope.writePhotosAlbum',
success() {
// 授权成功
}
})