设置显示里面自动亮度菜单删掉,位置信息一级菜单去掉,WiFi一级菜单去掉,连接设备一级菜单去掉,关于手机里面蓝牙和WiFi的菜单去掉,系统-手势-按住电源按钮去掉,通过广播来控制设置里的菜单是否隐藏

去掉菜单还可以找到key,然后用setvisible

比如在vendor/mediatek/proprietary/packages/apps/MtkSettings/ src/com/android/settings/dashboard/DashboardFragment.java 

这里有个专门处理的方法displayResourceTiles加入

Preference preference_setting = findPreference(key的名字);

preference_setting.setVisible(false);

Android12 s的项目都是这样去掉菜单的,和之前不一样

override/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/display/AutoBrightnessPreferenceController.java

里面有个getAvailabilityStatus()方法控制,注意这个是int类型的,

return mContext.getResources().getBoolean(

                com.android.internal.R.bool.config_automatic_brightness_available)

                ? AVAILABLE_UNSEARCHABLE

                : UNSUPPORTED_ON_DEVICE;

就直接改成return  UNSUPPORTED_ON_DEVICE;当然这个直接改这个布尔值也可以,但是我找到的布尔本来就是false,但最后还是返回的true,所以应该有overlay,但没找到在哪。后来找到了在vendor下的mediatek/proprietary/packages/overlay/vendor/FrameworkResOverlayExt/brightness_adaptive_support/res/values/config.xml

这里设置成了true

这个UNSUPPORTED_ON_DEVICE变量是在这配置的,实际上这个值是 int类型,所以这个控制显示的方法也是返回int类型的。

vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/core/BasePreferenceController.java

public static final int UNSUPPORTED_ON_DEVICE = 3;

位置Location也是同理

src/com/android/settings/location/TopLevelLocationPreferenceController.java

public int getAvailabilityStatus() {

        /*/tyd.yantao 20220808 delete Location

        return AVAILABLE;

        //*/

        return UNSUPPORTED_ON_DEVICE;

    }

WiFi的也同理

src/com/android/settings/network/TopLevelNetworkEntryPreferenceController.java

连接设备菜单同理

src/com/android/settings/connecteddevice/TopLevelConnectedDevicesPreferenceController.java

手势里的按住电源按钮也同理

src/com/android/settings/gestures/PowerMenuPreferenceController.java

关于手机里面的关于蓝牙和WiFi的菜单没有controller,所以直接在xml上注释掉

vendor/mediatek/proprietary/packages/apps/MtkSettings/res/xml/my_device_info.xml

<!--tyd.yantao 20220809 delete MAC

         <Preference

             android:key="saved_accesspoints_wifi_mac_address"

             android:order="45"

@@ -154,6 +155,7 @@

             android:summary="@string/view_saved_network"

             android:fragment="com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2"

             settings:enableCopying="false"/>

+         -->



<!--tyd.yantao 20220809 delete bt

         <Preference

             android:key="bt_address"

             android:order="47"

@@ -172,6 +175,7 @@

             android:summary="@string/summary_placeholder"

             android:selectable="false"

             settings:enableCopying="true"/>

+         -->

WiFi的除了这个preference其实还有IPdress还有个MAC的不能点击的preference,这个在config里面改个布尔值就可

./vendor/mediatek/proprietary/packages/apps/MtkSettings/res/values/config.xml

<!-- Whether wifi_ip_address should be shown or not. -->

    <bool name="config_show_wifi_ip_address">false</bool>



    <!-- Whether wifi_mac_address should be shown or not. -->

    <bool name="config_show_wifi_mac_address">false</bool>

网络和互联网-热点和网络共享,删除-WLAN热点

src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java

public boolean isAvailable() {

return false

通过广播来控制设置里的菜单是否隐藏:

base/services/core/java/com/android/server/BatteryService.java

接收广播处理,如果是需要批量隐藏,可以写数组遍历添加

public  String[] def_setting = {

    "com.action.gps.enable",

    "com.action.wifi.enable",

    "com.action.bluetooth.enable",

    } ;

然后添加广播过滤

for (int i = 0; i < def_setting.length; i++) {

                filter.addAction( def_setting[i]  );

            }

最后接到广播执行

for (int i = 0; i < def_setting.length; i++) {

                  if(action.equals(def_setting[i])  ){

                      Boolean data = intent.getBooleanExtra("enable", true);

                       android.util.Log.d("tydtech","data:"+data);

                      android.provider.Settings.System.putInt(mContext.getContentResolver(),"def_setting"+i,data?1:0);

                  }

                }

然后就是获取这个数据库的值做出对应的效果

vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/dashboard/DashboardFragment.java

private void displayResourceTiles() {方法中

String[] def2_setting = {"tydnull","toggle_wifi","tether_settings","bluetooth_settings"} ;

        for (int i = 0; i < def2_setting.length; i++) {

            Preference preference_setting = findPreference( def2_setting[i]  );

            if (preference_setting != null ) {

                if(android.provider.Settings.System.getInt(getContext().getContentResolver(),"def_setting"+i,1) ==0){

                    preference_setting.setVisible(false);

                }else{

                    preference_setting.setVisible(true);

                }

            }

        }

注意数组里的key名字要看好具体是哪个。然后这里的tydnull,是由于第一个不用,就不要管他

tether_settings这个就是热点和网络共享菜单,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Youth King

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值