| | |
| | | */ |
| | | async function requestAndroidMicPermission() { |
| | | try { |
| | | // 使用 uni 的权限 API(需要 HBuilderX 3.4.0+) |
| | | if (uni.requestPermissions) { |
| | | const result = await uni.requestPermissions({ |
| | | permissions: ['android.permission.RECORD_AUDIO'] |
| | | }) |
| | | |
| | | console.log('权限请求结果:', result) |
| | | |
| | | if (result[0].granted) { |
| | | console.log('✅ 麦克风权限已授予') |
| | | return true |
| | | } else { |
| | | console.warn('⚠️ 麦克风权限被拒绝') |
| | | |
| | | // 可以提示用户 |
| | | uni.showModal({ |
| | | title: '权限提示', |
| | | content: '语音通话需要麦克风权限,请前往设置开启', |
| | | showCancel: false, |
| | | success: () => { |
| | | // 跳转到应用设置 |
| | | plus.runtime.openURL(plus.runtime.getProperty('package') + '://settings') |
| | | } |
| | | }) |
| | | return false |
| | | } |
| | | } |
| | | // 获取麦克风权限 |
| | | // #ifdef APP-PLUS |
| | | plus.android.requestPermissions( |
| | | ['android.permission.RECORD_AUDIO'], |
| | | (result) => { |
| | | if (result.granted.length > 0) { |
| | | console.log('麦克风权限已获取') |
| | | } |
| | | if (result.deniedAlways.length > 0) { |
| | | uni.showModal({ |
| | | title: '提示', |
| | | content: '需要麦克风权限才能正常使用语音功能,请前往系统设置开启', |
| | | success(res) { |
| | | if (res.confirm) { |
| | | plus.runtime.openURL('app-settings:') |
| | | } |
| | | }, |
| | | }) |
| | | } |
| | | }, |
| | | (error) => { |
| | | console.error('请求麦克风权限失败:', error) |
| | | } |
| | | ) |
| | | // #endif |
| | | |
| | | // 降级方案:使用原生方法 |
| | | return await requestAndroidMicPermissionNative() |
| | | |
| | | |
| | | } catch (error) { |
| | | console.error('❌ 请求麦克风权限失败:', error) |
| | | return false |