android 音量获取和设置总结
来源:互联网 发布:七天网络学生空间 编辑:程序博客网 时间:2024/05/24 02:04
1、获取音量值:
AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
int currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
其中AudioManager.STREAM_MUSIC代表媒体音量,也可以替换成其他的类型,获取其他类型音量。
2、设置音量值:
例如我把媒体音量设置为0(静音)
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 0, AudioManager.FLAG_PLAY_SOUND);
3、监听音量键被按下:
在activity重写onKeyDown方法
public boolean onKeyDown(int keyCode, KeyEvent event) {
Log.d(TAG, "onKeyDown" + keyCode + "" + (keyCode == KeyEvent.KEYCODE_VOLUME_UP));
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
// 音量+键
}
if(keyCode == KeyEvent.KEYCODE_VOLUME_DOWN){
// 音量-键
}
}
4、监听音量变化:上面通过监听按键来监听调整音量的方法,不是很靠谱,因为可能用户在设置里调整音量,所以用下面方式监听音量变化
private void registerVolumeChangeReceiver() {
mSettingsContentObserver = new SettingsContentObserver(mContext, new Handler());
mContext.getContentResolver()
.registerContentObserver(android.provider.Settings.System.CONTENT_URI, true, mSettingsContentObserver);
}
private void unregisterVolumeChangeReceiver() {
mContext.getContentResolver().unregisterContentObserver(mSettingsContentObserver);
}
public class SettingsContentObserver extends ContentObserver {
Context context;
public SettingsContentObserver(Context c, Handler handler) {
super(handler);
context = c;
}
@Override
public boolean deliverSelfNotifications() {
return super.deliverSelfNotifications();
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
int currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
Log.d(TAG, "音量:" + currentVolume);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 0, AudioManager.FLAG_PLAY_SOUND);
}
}
5、监听震动模式变化
public boolean isMuteMode() {
AudioManager am = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
return am.getRingerMode() == AudioManager.RINGER_MODE_SILENT;
}
public boolean isVibrateMode() {
AudioManager am = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
return am.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE;
}
public boolean isNormalMode() {
AudioManager am = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
return am.getRingerMode() == AudioManager.RINGER_MODE_NORMAL;
}
private void registerRingerModeReceiver() {
mRingerModeReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(AudioManager.RINGER_MODE_CHANGED_ACTION)) {
// 监听到震动/静音/响铃的模式变化
if( isMuteMode()){
}
}
}
};
IntentFilter filter = new IntentFilter(AudioManager.RINGER_MODE_CHANGED_ACTION);
mContext.registerReceiver(mRingerModeReceiver, filter);
}
- android 音量获取和设置总结
- Android 程序获取、设置铃声和音量
- Android 各种音量的获取和设置
- Android 各种音量的获取和设置
- Android 各种音量的获取和设置
- Android 各种音量的获取和设置
- Android 各种音量的获取和设置
- Android 程序获取、设置铃声和音量
- Android 程序获取、设置铃声和音量
- Android 各种音量的获取和设置
- Android 各种音量的获取和设置
- Android中获取和设置各种音量
- 设置和获取Android中各种音量
- 如何获取和设置android系统铃声和音量大小
- 如何获取和设置android系统铃声和音量大小
- Android中各种音量的设置和获取
- 获取设置android系统手机的铃声和音量
- 关于Android手机声音音量的获取和设置
- 笔记6
- 机器学习---“没有免费的午餐”定理简单易懂的解释
- java代码实现多线程消费者生产者问题。
- WITH AS 用法
- 反编译apk
- android 音量获取和设置总结
- Android doze模式分析
- Windows下Qt程序的打包
- Python复合布尔表达式
- 全球范围内,能提供TMMi认证服务的组织/公司有多少家?
- spearman
- 信号报告 java基础题 switch——case
- HttpClient post请求 发送Json数据
- Postman使用官方文档翻译--14Cookie使用与获取