之前在没有接触 Android 安全音量的时候,以下是自己的尝试,这段代码当然不完善:
首先获得最大音量,之后除以二,后来看看这种方案在是太想当然了:
private int VoiceCallVolumeMoreHalf() {
AudioManager mAudioManager = null;
Integer mute = 0;
//Integer VoiceCallCurrentVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL);
int VoiceCallCurrentVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL); //1.获得当前音量大小,设置并返回为正数
return VoiceCallCurrentVolume;
//int MoreHaif = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL) / 2; //使用最大音量除以 2 得出平均值
//Log.d(MoreHaif);
if (VoiceCallCurrentVolume < mAudioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL)){
return
}
}
自己当时的思路是: 首先将音量设置为整形,之后获取最大值之后也返回最大值的整形,进行判断,如果超过了一半(这里的一半是自己臆想 /使用函数计算的)就会有安全音量提醒。
当得知安全音量中 Android 有封装好了之后,使用以下代码就好:
audioManager.setStreamVolume ( STREAM_MUSIC,newIndex,0 );
if ( Build.VERSION.SDK_INT> = 18 && audioManager.getStreamVolume ( STREAM_MUSIC )<newIndex ){
audioManager.setStreamVolume ( STREAM_MUSIC,newIndex,FLAG_SHOW_UI );
}
参考链接当中全都是系统源码,需要设置常量等,但都是源码。
问题:
参考链接:
一点小小的经验:Android 上的「安全音量」 - Yrom's
这个问题同时发表于SegmentFault,有删改。