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 來關閉此功能
相關文章
相關標籤/搜索