android音量键变成上下键,Android P 修改音量键控制与方向和UI一致

23a236e2e372409efe9fcf0e12779642.png

559a2785c850faef0d93120dbe79306f.png

ddb6bc6badade2b96129e39567219cf3.png

a9a533280c71f73722f171f9cfd21327.png

frameworks/base/services/core/java/com/android/server/media/MediaSessionService.java

--- a/mt8788/frameworks/base/services/core/java/com/android/server/media/MediaSessionService.java

+++ b/mt8788/frameworks/base/services/core/java/com/android/server/media/MediaSessionService.java

@@ -81,7 +81,7 @@ import android.util.SparseArray;

import android.util.SparseIntArray;

import android.view.KeyEvent;

import android.view.ViewConfiguration;

-

+import android.view.WindowManager;

import com.android.internal.os.BackgroundThread;

import com.android.internal.util.DumpUtils;

import com.android.server.SystemService;

@@ -1434,13 +1434,30 @@ public class MediaSessionService extends SystemService implements Monitor {

boolean down = keyEvent.getAction() == KeyEvent.ACTION_DOWN;

boolean up = keyEvent.getAction() == KeyEvent.ACTION_UP;

int direction = 0;

+ int rotation = ((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getRotation();

+ int device_id = keyEvent.getDeviceId();

+ Log.d("addlog", "====================rotation = "+ rotation);

boolean isMute = false;

switch (keyEvent.getKeyCode()) {

case KeyEvent.KEYCODE_VOLUME_UP:

- direction = AudioManager.ADJUST_RAISE;

+ if(device_id==1){

+ direction = (rotation == 0 || rotation == 1) ? AudioManager.ADJUST_LOWER : AudioManager.ADJUST_RAISE;

+ }else{

+ direction = AudioManager.ADJUST_RAISE;

+ }

break;

case KeyEvent.KEYCODE_VOLUME_DOWN:

- direction = AudioManager.ADJUST_LOWER;

+ if(device_id==1){

+ direction = (rotation == 0 || rotation == 1) ? AudioManager.ADJUST_RAISE : AudioManager.ADJUST_LOWER;

+ }else{

+ direction = AudioManager.ADJUST_LOWER;

+ }

break;

case KeyEvent.KEYCODE_VOLUME_MUTE:

isMute = true;

注:Android O还需修改如下文件:

frameworks/base/core/java/com/android/internal/policy/PhoneWindow.java

--- a/mt8167/frameworks/base/core/java/com/android/internal/policy/PhoneWindow.java

+++ b/mt8167/frameworks/base/core/java/com/android/internal/policy/PhoneWindow.java

@@ -1866,6 +1866,11 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {

//Log.i(TAG, "Key down: repeat=" + event.getRepeatCount()

// + " flags=0x" + Integer.toHexString(event.getFlags()));

+ int rotation = ((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getRotation();

+ int device_id = event.getDeviceId();

switch (keyCode) {

case KeyEvent.KEYCODE_VOLUME_UP:

case KeyEvent.KEYCODE_VOLUME_DOWN:

@@ -1876,10 +1881,22 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {

int direction = 0;

switch (keyCode) {

case KeyEvent.KEYCODE_VOLUME_UP:

- direction = AudioManager.ADJUST_RAISE;

+ if(device_id==1){

+ direction = (rotation == 2 || rotation == 1) ? AudioManager.ADJUST_LOWER : AudioManager.ADJUST_RAISE;

+ }else{

+ direction = AudioManager.ADJUST_RAISE;

+ }

break;

case KeyEvent.KEYCODE_VOLUME_DOWN:

- direction = AudioManager.ADJUST_LOWER;

+ if(device_id==1){

+ direction = (rotation == 2 || rotation == 1) ? AudioManager.ADJUST_RAISE : AudioManager.ADJUST_LOWER;

+ }else{

+ direction = AudioManager.ADJUST_LOWER;

+ }

break;

case KeyEvent.KEYCODE_VOLUME_MUTE:

direction = AudioManager.ADJUST_TOGGLE_MUTE;

标签:java,direction,rotation,AudioManager,ADJUST,音量,UI,Android,android

来源: https://blog.youkuaiyun.com/jydzm/article/details/97369702

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值