Android导航栏音量调节

编程入门 行业动态 更新时间:2024-10-27 23:18:08

Android导航栏<a href=https://www.elefans.com/category/jswz/34/1747454.html style=音量调节"/>

Android导航栏音量调节

导航栏音量加减其实质是模拟实体按键

android系统定义了音量up和down的keyevent,如下:
./core/java/android/view/KeyEvent.java

    /** Key code constant: Volume Up key.* Adjusts the speaker volume up. */public static final int KEYCODE_VOLUME_UP       = 24;                                                                                         /** Key code constant: Volume Down key.* Adjusts the speaker volume down. */public static final int KEYCODE_VOLUME_DOWN     = 25;

事件被触发的代码如下:
./services/core/java/com/android/server/policy/PhoneWindowManager.java

        int flags = AudioManager.FLAG_SHOW_UI | AudioManager.FLAG_PLAY_SOUND| AudioManager.FLAG_FROM_KEY;String pkgName = mContext.getOpPackageName();switch (keyCode) {case KeyEvent.KEYCODE_VOLUME_UP:   try {getAudioService().adjustSuggestedStreamVolume(AudioManager.ADJUST_RAISE,AudioManager.USE_DEFAULT_STREAM_TYPE, flags, pkgName, TAG);} catch (Exception e) {Log.e(TAG, "Error dispatching volume up in dispatchTvAudioEvent.", e);}break;case KeyEvent.KEYCODE_VOLUME_DOWN: try {getAudioService().adjustSuggestedStreamVolume(AudioManager.ADJUST_LOWER,AudioManager.USE_DEFAULT_STREAM_TYPE, flags, pkgName, TAG);} catch (Exception e) {Log.e(TAG, "Error dispatching volume down in dispatchTvAudioEvent.", e);}break;

最终通过AudioService去设置音量大小

因此在导航栏创建虚拟音量键时,需要在xml中加上keyCode值,如下

<com.android.systemui.statusbar.policy.KeyButtonViewxmlns:android=""xmlns:systemui=""android:id="@+id/volume_up"android:layout_width="@dimen/navigation_key_width"android:layout_height="match_parent"android:layout_weight="0"systemui:keyCode="24"android:scaleType="center"android:contentDescription="@string/accessibility_home"android:paddingStart="@dimen/navigation_key_padding"android:paddingEnd="@dimen/navigation_key_padding"/>
<com.android.systemui.statusbar.policy.KeyButtonViewxmlns:android=""xmlns:systemui=""android:id="@+id/volume_down"android:layout_width="@dimen/navigation_key_width"android:layout_height="match_parent"android:layout_weight="0"systemui:keyCode="25"android:scaleType="center"android:contentDescription="@string/accessibility_home"android:paddingStart="@dimen/navigation_key_padding"android:paddingEnd="@dimen/navigation_key_padding"/>

更多推荐

Android导航栏音量调节

本文发布于:2024-03-09 13:11:58,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1725050.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:音量调节   Android

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!