首页 > 其他 > 详细

MTK 关闭耳机调至最大音量时,提示损伤听力

时间:2018-04-27 18:35:48      阅读:366      评论:0      收藏:0      [点我收藏+]
android开发之耳机调至最大音量时,提示损伤听力

android开发之耳机调至最大音量时,提示损伤听力

通过提示语,我们可以查出,只要的逻辑代码是在framework/base/packages/SystemUI/src/com/android/systemui/SafetyWarningDialog.java

查看代码可知,在这个类的构造函数中,首先初始化了一个dialog


 public SafetyWarningDialog(Context context, AudioManager audioManager) {
45        super(context);
46        mContext = context;
47        mAudioManager = audioManager;
48
49        getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ERROR);
50        setMessage(mContext.getString(com.android.internal.R.string.safe_media_volume_warning));
51        setButton(DialogInterface.BUTTON_POSITIVE,
52                mContext.getString(com.android.internal.R.string.yes), this);
53        setButton(DialogInterface.BUTTON_NEGATIVE,
54                mContext.getString(com.android.internal.R.string.no), (OnClickListener) null);
55        setOnDismissListener(this);
56
57        final IntentFilter filter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
58        context.registerReceiver(mReceiver, filter);
59    }

当用户做按键操作时,会调用相关的listener 函数,具体的代码实现如下:


  @Override
64    public boolean onKeyDown(int keyCode, KeyEvent event) {
65        if (keyCode == KeyEvent.KEYCODE_VOLUME_UP && event.getRepeatCount() == 0) {
66            mNewVolumeUp = true;
67        }
68        return super.onKeyDown(keyCode, event);
69    }
70
71    @Override
72    public boolean onKeyUp(int keyCode, KeyEvent event) {
73        if (keyCode == KeyEvent.KEYCODE_VOLUME_UP && mNewVolumeUp
74                && (System.currentTimeMillis() - mShowTime) > KEY_CONFIRM_ALLOWED_AFTER) {
75            if (D.BUG) Log.d(TAG, "Confirmed warning via VOLUME_UP");
76            mAudioManager.disableSafeMediaVolume();
77            dismiss();
78        }
79        return super.onKeyUp(keyCode, event);
80    }
81
82    @Override
83    public void onClick(DialogInterface dialog, int which) {
84        mAudioManager.disableSafeMediaVolume();
85    }
86

mAudioManager.disableSafeMediaVolume(); //关闭安全音量提

如果说平台需要,可以通过config xml配置,将config_safe_media_volume_enabled 置false 来关闭此功能

MTK 关闭耳机调至最大音量时,提示损伤听力

原文:https://www.cnblogs.com/zxouxuewei/p/8963747.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!