android 8.1 去掉设置 里面 声音 中的一些功能

客户 想要去掉声音 菜单里面 一些 不常用的功能

包括:默认闹钟提示音 ,充电提示音,拨号提示音,默认通知提示音,默认手机铃声,

锁屏提示音,触摸提示音,有来电时响铃并振动,勿扰模式。

diff --git a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/AlarmRingtonePreferenceController.java b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/AlarmRingtonePreferenceController.java
index 2e7aab09a1..0daba35741 100644
--- a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/AlarmRingtonePreferenceController.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/AlarmRingtonePreferenceController.java
@@ -31,7 +31,10 @@ public class AlarmRingtonePreferenceController extends RingtonePreferenceControl
     public String getPreferenceKey() {
         return KEY_ALARM_RINGTONE;
     }
-
+    @Override
+    public boolean isAvailable() {
+        return false;
+    }
     @Override
     public int getRingtoneType() {
         return RingtoneManager.TYPE_ALARM;
diff --git a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ChargingSoundPreferenceController.java b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ChargingSoundPreferenceController.java
index 55cba9677f..7de52a7aac 100644
--- a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ChargingSoundPreferenceController.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ChargingSoundPreferenceController.java
@@ -32,7 +32,13 @@ public class ChargingSoundPreferenceController extends SettingPrefController {
             Lifecycle lifecycle) {
         super(context, parent, lifecycle);
         mPreference = new SettingPref(
-            TYPE_GLOBAL, KEY_CHARGING_SOUNDS, Global.CHARGING_SOUNDS_ENABLED, DEFAULT_ON);
+            TYPE_GLOBAL, KEY_CHARGING_SOUNDS, Global.CHARGING_SOUNDS_ENABLED, DEFAULT_ON){
+            @Override
+            public boolean isApplicable(Context context) {
+                return context.getResources().getBoolean(
+                    com.android.settings.R.bool.has_dock_settings);
+            }
+       };
 
     }
 
diff --git a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/DialPadTonePreferenceController.java b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/DialPadTonePreferenceController.java
index e0ca299683..906b1cdc96 100644
--- a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/DialPadTonePreferenceController.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/DialPadTonePreferenceController.java
@@ -36,7 +36,8 @@ public class DialPadTonePreferenceController extends SettingPrefController {
             TYPE_SYSTEM, KEY_DIAL_PAD_TONES, System.DTMF_TONE_WHEN_DIALING, DEFAULT_ON) {
             @Override
             public boolean isApplicable(Context context) {
-                return Utils.isVoiceCapable(context);
+                return Utils.isVoiceCapable(context) && context.getResources().getBoolean(
+                    com.android.settings.R.bool.has_dock_settings);
             }
         };
     }
diff --git a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/NotificationRingtonePreferenceController.java b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/NotificationRingtonePreferenceController.java
index 72e8d8f54d..e0cd0e6cef 100644
--- a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/NotificationRingtonePreferenceController.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/NotificationRingtonePreferenceController.java
@@ -31,7 +31,10 @@ public class NotificationRingtonePreferenceController extends RingtonePreference
     public String getPreferenceKey() {
         return KEY_NOTIFICATION_RINGTONE;
     }
-
+    @Override
+    public boolean isAvailable() {
+        return false;
+    }
     @Override
     public int getRingtoneType() {
         return RingtoneManager.TYPE_NOTIFICATION;
diff --git a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/PhoneRingtonePreferenceController.java b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/PhoneRingtonePreferenceController.java
index cb1115165f..0d84a5032a 100644
--- a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/PhoneRingtonePreferenceController.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/PhoneRingtonePreferenceController.java
@@ -35,7 +35,7 @@ public class PhoneRingtonePreferenceController extends RingtonePreferenceControl
 
     @Override
     public boolean isAvailable() {
-        return Utils.isVoiceCapable(mContext);
+        return false;//Utils.isVoiceCapable(mContext);
     }
 
     @Override
diff --git a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ScreenLockSoundPreferenceController.java b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ScreenLockSoundPreferenceController.java
index b08b8f8409..f9003f25bf 100644
--- a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ScreenLockSoundPreferenceController.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ScreenLockSoundPreferenceController.java
@@ -32,7 +32,13 @@ public class ScreenLockSoundPreferenceController extends SettingPrefController {
             Lifecycle lifecycle) {
         super(context, parent, lifecycle);
         mPreference = new SettingPref(
-            TYPE_SYSTEM, KEY_SCREEN_LOCKING_SOUNDS, System.LOCKSCREEN_SOUNDS_ENABLED, DEFAULT_ON);
+            TYPE_SYSTEM, KEY_SCREEN_LOCKING_SOUNDS, System.LOCKSCREEN_SOUNDS_ENABLED, DEFAULT_ON){
+            @Override
+            public boolean isApplicable(Context context) {
+                return context.getResources().getBoolean(
+                    com.android.settings.R.bool.has_dock_settings);
+            }
+       };
     }
 
 }
diff --git a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/VibrateOnTouchPreferenceController.java b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/VibrateOnTouchPreferenceController.java
index acb6b4d52c..1bb19ede83 100644
--- a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/VibrateOnTouchPreferenceController.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/VibrateOnTouchPreferenceController.java
@@ -43,7 +43,8 @@ public class VibrateOnTouchPreferenceController extends SettingPrefController {
 
     private static boolean hasHaptic(Context context) {
         final Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
-        return vibrator != null && vibrator.hasVibrator();
+        return vibrator != null && vibrator.hasVibrator() && context.getResources().getBoolean(
+                    com.android.settings.R.bool.has_dock_settings);
     }
 
 }
diff --git a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java
index d41e16bc5a..8a3802b3f1 100644
--- a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java
@@ -82,7 +82,7 @@ public class VibrateWhenRingPreferenceController extends AbstractPreferenceContr
 
     @Override
     public boolean isAvailable() {
-        return Utils.isVoiceCapable(mContext);
+        return false;//Utils.isVoiceCapable(mContext);
     }
 
     @Override
diff --git a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ZenModePreferenceController.java b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ZenModePreferenceController.java
index e11b422572..3e9fcf73a2 100644
--- a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ZenModePreferenceController.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ZenModePreferenceController.java
@@ -37,7 +37,7 @@ public class ZenModePreferenceController extends AdjustVolumeRestrictedPreferenc
 
     @Override
     public boolean isAvailable() {
-        return true;
+        return false;
     }
 
     @Override
diff --git a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
index 2fadede220..56485b63a1 100644
--- a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
@@ -56,7 +56,7 @@ public class WifiMasterSwitchPreferenceController extends AbstractPreferenceCont
 
     @Override
     public boolean isAvailable() {
-        return true;
+        return false;
     }
 
     @Override

分析:隐藏掉充电提示音 修改的文件ChargingSoundPreferenceController.java ,刚看到的时候 ,里面代码很简单,不知道怎么下手。后面通过 查看对应的 布局文件 sound_settings.xml

发现 基座提示音 在机器上没有显示 打开 DockingSoundPreferenceController.java 发现 了

文件里面 复写 isApplicable 方法。

mPreference = new SettingPref(
            TYPE_GLOBAL, KEY_DOCKING_SOUNDS, Global.DOCK_SOUNDS_ENABLED, DEFAULT_ON) {
            @Override
            public boolean isApplicable(Context context) {
                return context.getResources().getBoolean(R.bool.has_dock_settings);
            }
        };

通过查找父类SettingPref.java发现 ,       

final Context context = settings.getActivity();
        Preference p = settings.getPreferenceScreen().findPreference(mKey);
        if (p != null && !isApplicable(context)) {
            settings.getPreferenceScreen().removePreference(p);
            p = null;
        }

来判断是否移除掉对应的 Preference 控件。

去掉默认闹钟提示音 在 AlarmRingtonePreferenceController.java 中添加了

    @Override
    public boolean isAvailable() {
        return false;
    }

方法。次方法 也是通过 查看同类型的文件 了解的 。

通过 跟踪查看父类 。发现了 AbstractPreferenceController.java 中 有

  /**
   * Displays preference in this controller.
   */
  public void displayPreference(PreferenceScreen screen) {
      if (isAvailable()) {
          if (this instanceof Preference.OnPreferenceChangeListener) {
              final Preference preference = screen.findPreference(getPreferenceKey());
              preference.setOnPreferenceChangeListener(
                      (Preference.OnPreferenceChangeListener) this);
          }
      } else {
          removePreference(screen, getPreferenceKey());
      }
  }

  • 19
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Android 8.1引入了一些新功能,其一个是试图打通与Chromebook的联系。这个新功能被称为SMS Connect Prebuilt,它允许用户在Chromebook上收发手机短信,并接收新短信的通知提醒。这样用户可以更方便地在Chromebook上处理手机短信。\[2\] 另外,Android 8.1还引入了一个有趣的功能,即允许动态壁纸为系统UI提供颜色信息。开发者可以通过创建WallpaperColors对象来实现这一功能,从而为系统UI提供更加丰富的颜色体验。\[3\] 总的来说,Android 8.1的新功能使用户能够更好地与Chromebook进行交互,并且提供了更丰富的颜色体验。 #### 引用[.reference_title] - *1* *2* [Android 8.1新功能怎么样?Android 8.1新功能介绍](https://blog.csdn.net/weixin_35106801/article/details/117474348)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Android 8.1 功能与新特性](https://blog.csdn.net/wjky2014/article/details/100938867)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值