Android 安全音量的设置以及源码阅读问题

发布于 2022-09-11 20:26:52 字数 1611 浏览 15 评论 0

之前在没有接触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); 
}

参考链接当中全都是系统源码,需要设置常量等,但都是源码。
问题:

  1. 是否需要在自己的应用中创建相关Java文件并设置常量等?
  2. 在阅读源码的过程中,如何将源码里的思路转换成应用开发端的代码?
  3. 在上述的代码里,如何设置newIndex?newIndex的来源是?
  4. 在开发(包括但不限于)相应模块时,如何确定什么时候用什么方法或者自己造方法写函数,或者从侧面应证了看API文档或者SDK文档的重要性?

参考链接

一点小小的经验: Android 上的「安全音量」 - Yrom's

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文