android - 调用AudioManager.setMode(MODE_NORMAL)时,如何修复具有Android 8.0和8.1.0特定SecurityException的Samsung?

标签 android audio bluetooth permissions samsung-mobile

我正在使用使用AudioManager更改音频状态的应用程序。当应用程序处于后台时,将模式更改回正常状态时,应用程序崩溃。

这是设备特定的问题。该应用仅在后台运行时,仅在具有Android 8.0或Android 8.1.0的三星设备上发生。

我尝试使用特定的三星设备在背景为带有蓝牙耳机的应用程序更改为背景时更改AudioManager的模式。以三星Galaxy s8 +为例。我无法重现此错误,但是有很多Crashlytics报告崩溃。

这是导致崩溃的原因:

mAudioManager.setMode(AudioManager.MODE_NORMAL);

这就是崩溃:
Need BLUETOOTH permission: Neither user 10240 nor current process has android.permission.BLUETOOTH.
    android.os.Parcel.readException (Parcel.java:1967)
    android.os.Parcel.readException (Parcel.java:1913)
    android.media.IAudioService$Stub$Proxy.setMode (IAudioService.java:1683)
    android.media.AudioManager.setMode (AudioManager.java:2142)

最佳答案

每当您处理最新的android版本时,这都是一个运行时权限问题,因此要解决此问题,只需在您的应用中提供运行时权限

关于android - 调用AudioManager.setMode(MODE_NORMAL)时,如何修复具有Android 8.0和8.1.0特定SecurityException的Samsung?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56219558/

相关文章:

objective-c - 如何在建立蓝牙连接时自动启动 iOS 应用程序?

android - 如何在 Android 应用程序中添加和打开 sqlite 文件?

android - 当我将目标版本设置为大于 4.4 时,Eclipse 显示内容辅助在当前位置不可用

audio - 如何进行单声道到立体声的转换?

audio - 扬声器如何拆分传入的字节

java - 为什么我的蓝牙应用程序崩溃

linux - 使用 gdbus 实用程序将对象作为参数传递

java - 从 Android Activity 的后退按钮调用什么方法?

android - 在kotlin中使用 'it'时我的变量名和 'let'有什么区别?

Java频率分析性能