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

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

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

经过提示语,咱们能够查出,只要的逻辑代码是在framework/base/packages/SystemUI/src/com/android/systemui/SafetyWarningDialog.javaandroid

查看代码可知,在这个类的构造函数中,首先初始化了一个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 函数,具体的代码实现以下:ide

 
  @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 来关闭此功能
相关文章
相关标签/搜索