izjing
izjing
  • 发布:2023-02-05 04:05
  • 更新:2024-10-18 15:52
  • 阅读:650

【报Bug】手机静音模式下plus.device.setVolume失效

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 12.6 (21G115)

HBuilderX类型: 正式

HBuilderX版本号: 3.7.0

手机系统: Android

手机系统版本号: Android 12

手机厂商: 小米

手机机型: 小米10S

页面类型: nvue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

plus.device.setVolume(0.6)
console.log(plus.device.getVolume(), '这里输出的还是0');

操作步骤:

将手机调整为静音模式
然后设置手机音量就失效了

预期结果:

静音模式下可以正常调整手机音量

实际结果:

现在静音不能调整

bug描述:

手机静音模式下plus.device.setVolume设置声音失效

2023-02-05 04:05 负责人:DCloud_Android_YJC 分享
已邀请:
izjing

izjing (作者)

小米手机10S,系统版本miui13.0.8, plus.device.setVolume设置为0时手机会自动进入静音,然后plus.device.setVolume再去设置值会失效

DCloud_Android_YJC

DCloud_Android_YJC

这个问题涉及到勿扰模式下的音量调节问题,Android对此行为是有限制的,需要用户手动授权勿扰模式权限,我这提供一个解决方案,云打包或自定义基座生效,你试下
manifest.json源码视图 app-plus->distribute->android->permissions添加

<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />

在触发此业务逻辑前,加入以下代码

let ctx = plus.android.runtimeMainActivity();  

let Context = plus.android.importClass("android.content.Context");  
let NotificationManager = plus.android.importClass("android.app.NotificationManager");  
let notificationManager = ctx.getSystemService(Context.NOTIFICATION_SERVICE);  

let Build = plus.android.importClass("android.os.Build");  
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && !notificationManager  
    .isNotificationPolicyAccessGranted()) {  
    // 打开免打扰权限  
    let Intent = plus.android.importClass("android.content.Intent");  
    let intent = new Intent("android.settings.NOTIFICATION_POLICY_ACCESS_SETTINGS");  
    ctx.startActivity(intent);  
} else {  
    // 调节音量逻辑  
}
1***@163.com

1***@163.com - 大家好

let ctx = plus.android.runtimeMainActivity();
let Context = plus.android.importClass("android.content.Context");
let AudioManager = plus.android.importClass("android.media.AudioManager");
let audioManager = ctx.getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,15(通常为0-15),0)

使用安卓AudioManager实现

要回复问题请先登录注册