uni-app android.permission.RECORD_AUDIO权限设置无效

uni-app android.permission.RECORD_AUDIO权限设置无效

产品分类:
uniapp/App

PC开发环境操作系统:
Windows

PC开发环境操作系统版本号:
windows11

HBuilderX类型:
正式

HBuilderX版本号:
4.08

手机系统:
全部

手机厂商:
华为

页面类型:
vue

vue版本:
vue3

打包方式:
云端

项目创建方式:
HBuilderX

测试过的手机:
Harmony 3.0.0

操作步骤:
<uses-permission android:name="android.permission.RECORD_AUDIO"/>

预期结果:
app在系统权限管理中有麦克风选项

实际结果:
app在系统权限管理中没有麦克风选项

bug描述:

开发环境 版本号 项目创建方式
Windows 4.08 HBuilderX

更多关于uni-app android.permission.RECORD_AUDIO权限设置无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

我这边也是+1,官方回复下

更多关于uni-app android.permission.RECORD_AUDIO权限设置无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


你好,我这边也遇到这个问题了,请问您这边解决了吗

在 UniApp 中,如果你遇到 android.permission.RECORD_AUDIO 权限设置无效的问题,可能是由于以下原因导致的。下面是一些常见的解决方法:


1. 确认权限声明正确

manifest.json 文件中,确保你已经正确声明了录音权限:

{
  "permissions": {
    "android": [
      {
        "name": "android.permission.RECORD_AUDIO"
      }
    ]
  }
}

2. 动态申请权限

在 Android 6.0 及以上版本,部分权限需要动态申请。你可以在代码中动态请求录音权限:

uni.authorize({
  scope: 'scope.record',
  success() {
    console.log('录音权限已授权');
  },
  fail() {
    console.log('录音权限未授权');
  }
});

或者在需要时调用:

uni.getSetting({
  success(res) {
    if (!res.authSetting['scope.record']) {
      uni.authorize({
        scope: 'scope.record',
        success() {
          console.log('录音权限已授权');
        },
        fail() {
          console.log('录音权限未授权');
        }
      });
    }
  }
});

3. 检查设备权限设置

如果动态申请权限失败,可能是因为用户手动禁用了权限。可以引导用户到系统设置中开启权限:

uni.openSetting({
  success(res) {
    console.log('打开系统设置成功');
  },
  fail() {
    console.log('打开系统设置失败');
  }
});

4. 检查 UniApp 版本

确保你使用的是最新版本的 UniApp,旧版本可能存在权限相关的 Bug。


5. 检查原生代码

如果你使用了原生插件或自定义原生代码,确保插件或代码中正确实现了权限申请逻辑。


6. 真机调试

在模拟器上可能无法正确模拟权限行为,建议使用真机测试。


7. 检查 Android 配置

如果你的项目是原生 Android 项目(如通过 HBuilderX 打包),确保在 AndroidManifest.xml 中正确声明了权限:

<uses-permission android:name="android.permission.RECORD_AUDIO" />
回到顶部