【问题标题】:Android AudioManager setMode() permission DenialAndroid AudioManager setMode() 权限被拒绝
【发布时间】:2012-05-02 15:34:44
【问题描述】:

我在播放媒体时尝试使用 setMode(mode_in_call) 更改音频模式。 所以,我确定我添加了权限
我用这样的代码写: AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); mAudioManager.setMode(AudioManager.MODE_IN_CALL);

问题来了: 我用三星 i9000 i9023 它不起作用,并且日志电话相关音频设置权限被拒绝:setMode() 但我尝试了索尼 x10 LT15i,它可以正确修改模式。 为什么不会发生这种情况。

【问题讨论】:

    标签: android android-audiomanager


    【解决方案1】:

    我没有看到你说你添加了什么权限,但请确保它是:

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

    【讨论】:

    • thx,我已经通过 SetMode(AudioManager.MODE_IN_COMMUNICATION) 修复它
    • MODE_IN_CALL 仅限于来自 Android Lollipop 的第三方应用程序。只有当您的应用程序是系统应用程序时,您才能使用它。作为第三方应用程序的最佳方法是使用带有适当音频路由控制的 MODE_IN_COMMUNICATION。
    【解决方案2】:

    请注意,MODE_IN_CALL 只能由具有 Manifest.permission.MODIFY_PHONE_STATE 权限的主电话应用程序选择。

    “Manifest.permission.MODIFY_PHONE_STATE” - 允许修改电话状态 - 开机、mmi 等。不包括拨打电话。不供第三方应用程序使用。

    参考链接: https://developer.android.com/reference/android/media/AudioManager#setCommunicationDevice(android.media.AudioDeviceInfo)

    https://developer.android.com/reference/android/Manifest.permission#MODIFY_PHONE_STATE

    【讨论】:

      猜你喜欢
      • 2013-07-03
      • 2015-12-21
      • 2020-06-03
      • 2020-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-06
      相关资源
      最近更新 更多