Android系统去4G相关选项-SIM卡-移动网络-短信-电话-通讯录App

提示:Android 去 4G相关选项

文章目录


前言 - 需求 -场景

因为产品没有4G,需要把基本的4G上面内容去掉,如下是部分工作。

  • 去掉4G相关 SIM卡、移动网络
  • 去掉部分App: 短信、电话、通讯录

一、 参考资料

Android 系统去掉- 短信-电话-通讯录App实现 去掉4G 相关的App

定时开关机功能实现 这里重点核心关系的不是开关机如何实现,是一个第三方app,如何嵌入式进入设置App 界面里面

如下:常见 指导 如何分析和删除设置中菜单,常用的方法,如何找到为止、如何看日志 分析实现需求。
Android系统去掉WIFI模块
无障碍服务屏蔽_关闭无障碍服务快捷方式
Android 系统设置中去掉备份菜单

二、文件修改方案实现

删除 短信、电话、通讯录 App

java 复制代码
/vendor/google/products/gms.mk
/device/mediatek/system/common/device.mk 
/build/make/target/product/handheld_product.mk
/vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/dialer/main/impl/AndroidManifest.xml 

屏蔽SIM 、移动网络

java 复制代码
vendor/mediatek/proprietary/packages/apps/MtkSettings/AndroidManifest.xml  
vendor/mediatek/proprietary/packages/apps/MtkSettings/res/xml/my_device_info.xml 
vendor/mediatek/proprietary/packages/apps/MtkSettings/res/xml/network_provider_internet.xml    

三、实现方案

删除 短信、电话、通讯录 App

参考 Android 系统去掉- 短信-电话-通讯录App实现 去掉4G 相关的App ,进行了详细的介绍

如下效果:

屏蔽SIM 、移动网络

1、删除-设置-网络与互联网-移动网络

路径:vendor/mediatek/proprietary/packages/apps/MtkSettings/res/xml/network_provider_internet.xml

删除如下代码片段:

java 复制代码
  <!--
  <com.android.settings.widget.AddPreference
        android:key="mobile_network_list"
        android:title="@string/network_settings_title"
        android:summary="@string/summary_placeholder"
        android:icon="@drawable/ic_network_cell"
        android:order="-15"
        settings:keywords="@string/keywords_more_mobile_networks"
        settings:userRestriction="no_config_mobile_networks"
        settings:allowDividerAbove="true"
        settings:useAdminDisabledSummary="true" />
		-->

2、删除-设置-网络与互联网-SIM

路径:vendor/mediatek/proprietary/packages/apps/MtkSettings/AndroidManifest.xml

屏蔽掉如下内容: SimSettingsActivity 中的 intent-filter

java 复制代码
    <!-- /// M: Add for SIM Settings Entry -->
        <activity
            android:name="Settings$SimSettingsActivity"
            android:label="@string/sim_settings_title"
            android:icon="@drawable/ic_settings_sim"
            android:exported="false"
            android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|keyboardHidden|mcc|mnc"
            android:parentActivityName="Settings">
        <!--    <intent-filter android:priority="1">
                <action android:name="com.android.settings.sim.SIM_SUB_INFO_SETTINGS" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.android.settings.action.SETTINGS" />
            </intent-filter>
            <meta-data android:name="com.android.settings.order" android:value="-2"/>
            <meta-data android:name="com.android.settings.category"
                android:value="com.android.settings.category.ia.wireless" />
            <meta-data android:name="com.android.settings.summary"
                android:resource="@string/summary_empty"/>
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                android:value="com.mediatek.settings.sim.SimSettings" />
		 -->		
        </activity>

3、屏蔽掉-设备-关于-SIM状态

路径:vendor/mediatek/proprietary/packages/apps/MtkSettings/res/xml/my_device_info.xml

屏蔽掉,如下代码:

java 复制代码
      <!-- SIM status 
        <Preference
            android:key="sim_status"
            android:order="18"
            android:title="@string/sim_status_title"
            settings:keywords="@string/keywords_sim_status"
            android:summary="@string/summary_placeholder"
            settings:enableCopying="true"/> -->

        <!-- Model & hardware -->

四、扩展知识-思考

设置相关-去掉菜单item - 方法思路

自己总结有三种,如下:

  • 直接在xml 里面屏蔽掉preference
  • controller 中控制是否显示 ,方法是isAvailable
  • 嵌入式到Settings 场景,这里有两个典型案例:定时开关机功能实现 和 这里 屏蔽掉 SIM卡。

坑点-思考-窍门

为什么会有坑,因为按照常理,如上思路一二去分析、查找源码,怎么都找不到,花费大量时间和精力就是找不到需要屏蔽的菜单。 所以 一定要记得Settings菜单可能是嵌入、侵入式存在插入进来的,设置里面或者在其它第三方app 里面配置情况都存在,这种情况在手机方案中特别常见。
屏蔽菜单窍门:

假使就是不知道在哪里屏蔽菜单,可以点击菜单进入后可以查一下进入菜单的Activity界面,然后在配置文件 AndroidMenifest.xml 配置的 activity 里面配置文件看看,然后屏蔽掉即可。


总结

  • 去4G模块是常见的客需需求,需要掌握最基本的方法、思路。需要熟悉配置文件,知道如何配置和屏蔽实现裁剪目的。
  • 对于设置去菜单需求,一定要知道方案、方法。 知道如何找到对应位置。