Audiomanager 扬声器不工作
Audiomanager Speaker not working
我正在通话时尝试启用扬声器:
final AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
audioManager.setSpeakerphoneOn(true);
我试图在 setSpeakerphoneOn()
audiomanager 之后检查,并通过询问 isSpeakerphoneOn()
得知扬声器仍然没有打开
audioManager.isSpeakerphoneOn();
在我的日志中我可以看到一些我无法理解的错误:
E/AudioManager: Don't setBluetoothScoOn-PackageName: com.myapp.app on = false
E/AudioManager: Don't setSpeakerphoneOn-PackageName: com.myapp.app on = true
我在论坛中找不到关于此错误的任何信息。
无法在设备上运行:中兴 Z981、华为 p9,我已经尝试过 ,并且 android.permission.MODIFY_AUDIO_SETTINGS
被授予。
嗨,阅读 android 开发者文章
https://developer.android.com/reference/android/media/AudioManager.html
解释清楚
您需要在清单
中设置权限:MODIFY_AUDIO_SETTINGS
在清单中添加这一行
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
我发现setSpeakerphoneOn()
之前的setMode()
(当前模式)修复了logcat上的错误:
AudioManager audioManager = (AudioManager)getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
audioManager.setMode(AudioManager.MODE_IN_CALL);
audioManager.setSpeakerphoneOn(true);
1.setSpeakerphoneOn()
仅在 setMode(AudioManager.MDOE_IN_CALL);
上工作
唯一对我有用的是设置
audioManager.setMode(AudioManager.MODE_RINGTONE | AudioManager.MODE_IN_CALL);
audioManager.setSpeakerphoneOn(true);
没有 AudioManager.MODE_RINGTONE 它不起作用..
感谢this post
我正在通话时尝试启用扬声器:
final AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
audioManager.setSpeakerphoneOn(true);
我试图在 setSpeakerphoneOn()
audiomanager 之后检查,并通过询问 isSpeakerphoneOn()
audioManager.isSpeakerphoneOn();
在我的日志中我可以看到一些我无法理解的错误:
E/AudioManager: Don't setBluetoothScoOn-PackageName: com.myapp.app on = false
E/AudioManager: Don't setSpeakerphoneOn-PackageName: com.myapp.app on = true
我在论坛中找不到关于此错误的任何信息。
无法在设备上运行:中兴 Z981、华为 p9,我已经尝试过 android.permission.MODIFY_AUDIO_SETTINGS
被授予。
嗨,阅读 android 开发者文章
https://developer.android.com/reference/android/media/AudioManager.html
解释清楚
您需要在清单
中设置权限:MODIFY_AUDIO_SETTINGS在清单中添加这一行
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
我发现setSpeakerphoneOn()
之前的setMode()
(当前模式)修复了logcat上的错误:
AudioManager audioManager = (AudioManager)getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
audioManager.setMode(AudioManager.MODE_IN_CALL);
audioManager.setSpeakerphoneOn(true);
1.setSpeakerphoneOn()
仅在 setMode(AudioManager.MDOE_IN_CALL);
唯一对我有用的是设置
audioManager.setMode(AudioManager.MODE_RINGTONE | AudioManager.MODE_IN_CALL);
audioManager.setSpeakerphoneOn(true);
没有 AudioManager.MODE_RINGTONE 它不起作用..
感谢this post