MTK Android 默认值修改笔记
1.设置菜单:
1.1位置信息(Location)默认关闭:
请将
alps\frameworks\base\packages\SettingsProvider\res\values\default.xml
中的
<string name="def_location_providers_allowed" translatable="false">gps</string>
修改为
<string name="def_location_providers_allowed" translatable="false"></string>
然后重新build ,format 手机,download新的image测试。
1.2默认系统时间的修改(请区别于RTC时间)
首先找到vendor\mediatek\proprietary\frameworks\base\res\res\values下的2个xml文件,
symbols.xml,config.xml,.
2个文件分辨定义了默认时间的key和值,默认只定义了年分,可以自行添加月,日,时,分,秒。
如:
symbols.xml
<java-symbol type="string" name="config_mm_package_name" />
<java-symbol type="integer" name="default_restore_year" />
<java-symbol type="integer" name="default_restore_month" />
<java-symbol type="integer" name="default_restore_day" />
<java-symbol type="integer" name="default_restore_hour" />
<java-symbol type="integer" name="default_restore_minute" />
<java-symbol type="integer" name="default_restore_second" />
config.xml
<!-- default year for first power on-->
<integer name="default_restore_year">2015</integer>
<!-- default month for first power on-->
<integer name="default_restore_month">0</integer>
<!-- default day for first power on-->
<integer name="default_restore_day">1</integer>
<!-- default hour for first power on-->
<integer name="default_restore_hour"></integer>
<!-- default minute for first power on-->
<integer name="default_restore_minute"></integer>
<!-- default second for first power on-->
<integer name="default_restore_second"></integer>
具体设置生效是在JAVA类里面实现,请看NetworkTimeUpdateService.java,位于framework/base/services下面:
Time today = new Time(Time.getCurrentTimezone());
today.setToNow();
Log.d(TAG, "First boot:" + tempString + " with date:" + today);
today.set(mDefaultDay, mDefaultMonth, mDefaultYear);
mDefaultDay,mDefaultMonth,mDefaultYear即是通过上述XML文件得到的值,可以发现这个set有个带6个参数的重载方法,正是此方法可以精确到秒,自行尝试吧。
注意:today.set(mDefaultDay, mDefaultMonth, mDefaultYear)此句是我修改过的,源码是today.set(1, 0, mDefaultYear),0代表January。
2.Launcher:
当有多个launcher可供选择时,默认选择某个launcher,而不弹出选择框。
修改ActivityManagerService.java的startHomeActivityLocked方法:
boolean startHomeActivityLocked(int userId, String reason) {
if (mFactoryTest == FactoryTest.FACTORY_TEST_LOW_LEVEL
&& mTopAction == null) {
// We are running in factory test mode, but unable to find
// the factory test app, so just sit around displaying the
// error message and don't try to start anything.
return false;
}
/**
* mtk add
* set default launcher
*/
ComponentName DefaultLauncher=new ComponentName("com.android.launcher3","com.android.launcher3.Launcher"); //此处设置默认Launcher的包名和类名
//Slog.d(TAG,"set default launcher");
final PackageManager mPm = mContext.getPackageManager();
ArrayList<ResolveInfo> homeActivities = new ArrayList<ResolveInfo>();
ComponentName currentDefaultHome = mPm.getHomeActivities(homeActivities);
ComponentName[]mHomeComponentSet = new ComponentName[homeActivities.size()];
for (int i = 0; i < homeActivities.size(); i++) {
final ResolveInfo candidate = homeActivities.get(i);
//Slog.d(TAG,"homeActivities"+candidate);
final ActivityInfo info = candidate.activityInfo;
ComponentName activityName = new ComponentName(info.packageName, info.name);
mHomeComponentSet[i] = activityName;
}
IntentFilter mHomeFilter = new IntentFilter(Intent.ACTION_MAIN);
mHomeFilter.addCategory(Intent.CATEGORY_HOME);
mHomeFilter.addCategory(Intent.CATEGORY_DEFAULT);
List<ComponentName>Activities=new ArrayList();
mPm.replacePreferredActivity(mHomeFilter, IntentFilter.MATCH_CATEGORY_EMPTY,mHomeComponentSet, DefaultLauncher);
/**
* set default launcher end
*/
Intent intent = getHomeIntent();
ActivityInfo aInfo =
resolveActivityInfo(intent, STOCK_PM_FLAGS, userId);
......
PS:
1.如果用户在设置->应用程序->管理应用程序->所有应用程序列表,找到之前设置的默认Launcher,并取消了默认值,系统会重新弹出launcher选择框。但重启后会进入上述代码设置的默认Launcher。
2.如果用户在设置->主屏幕中修改了默认的Launcher,下次重启后将进入修改后的Launcher
3.Settings:
设置下的一些默认值不是在xml修改,就是在SettingsProvider下的DataHelper.java下修改,loadSettings方法
4.相机:
常用的设置方法:SettingDataBase下找到DEFAULT_VALUE_FOR_SETTING_ID,更改对应ID的XML文件值.
5.音乐播放器:
1.均衡器(Equalizer)相关:ControlPanelEffect.java相关定义和代码修改
MTK Android 默认值修改笔记的更多相关文章
- 如何修改mtk android 默认拍照size
[DESCRIPTION] 修改默认拍照size [SOLUTION] 修改默认的capture size,改变camera feature table的FID_CAP_SIZE default值不起 ...
- [插件]jQuery multiselect初始化及默认值修改
下载地址:http://pan.baidu.com/s/1dE2daSD 1.Jquery多选下拉列表插件jquery multiselect功能介绍及使用 http://www.jb51.net/a ...
- myeclipse下拷贝的项目,tomcat下部署名称和导出为war包的名称默认值修改
拷贝一个项目,作为一个新的项目,给它换了名字,这时候默认的部署名称等都是原来项目的,这时候要在属性里面修改一下.
- oracle 以及 sql server mysql 空值默认值修改
在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办? 1.MSSQL: ISNULL() 语法 ISNULL ( check_expression , replacem ...
- python 在调用时计算默认值
大家都知道python的默认值是在函数定义时计算出来的, 也就是说默认值只会计算一次, 之后函数调用时, 如果参数没有给出,同一个值会赋值给变量, 这会导致, 如果我们想要一个list默认值, 新手通 ...
- MySQL5.7中的sql_mode默认值
简介 在正常项目开发过程中,如果MySQL版本从5.6升级到5.7版本.作为DBA在考虑数据库版本升级带来的影响时,一般会有几个注意点: sql_mode 默认值的改变 optimizer_switc ...
- 修改Android默认背光值
/********************************************************************* * 修改Android默认背光值 * 说明: * 本文主要 ...
- 使用Kotlin开发Android应用(III):扩展函数和默认值
通过前面两篇文章,我们学习了Kotlin的基本知识,并知道如何配置工程,本文将接着介绍Java没有的而Kotlin实现了的有趣的特性.记住当你对Kotlin语言有任何疑问时,请参考官方指南.该指南组织 ...
- Android默认输入法语言的修改以及SettingsProvider作用
Android源码中默认的有三种输入法:英文,中文,日文.对应的工程代码路径为:<android_root>/packages/inputmethods/LatinIME/<andr ...
随机推荐
- Nginx源码研究七:nginx的location指令分析
在nginx的配置文件nginx.conf中,我们在配置server的时候,会配置一下location指令,这个location指令是提供给用户来配置对于符合指令的http请求,采用该指令内部的处理方 ...
- 织梦DedeCMS子目录移动到根目录的方法
有时候我们在子目录中安装了dedecms,但有时候需要将其换到根目录中,下面就讲一下织梦DedeCMS子目录移动到根目录的方法: 下面是具体的操作步骤,强烈建议先备份数据库. 1.进入dedecms后 ...
- 【行为型】Memento模式
备忘录模式顾名思义就是一种能有备忘作用的设计模式,其目的是在对象外部保存其在某一时刻的状态信息,并且在任何需要的时候,都可以通过备忘录中保存的状态数据恢复对象在当时情形下的状态. 备忘录模式旨在对象的 ...
- linux修改环境变量
/etc/profile 系统全局环境变量设定,所有用户共享,修改后,需要重启系统才能生效 ~/.bash_profile,~/.bashrc 用户目录下的私有环境变量设定,常用来个性化定制功能,修改 ...
- HDU 5224 Tom and paper(最小周长)
HDU 5224 Tom and paper(最小周长) Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d &a ...
- sock_ntop等函数
inet_ntop的一个基本问题是:它要求调用者传递一个指向某个二进制地址的指针, 而该地址通常包含在一个套接字地址结构中,这就要求调用者必须知道这个结构的格式和地址簇, 为了使用这个函数,我们必须为 ...
- jQuery的live绑定事件在mobile safari(iphone / ipad / ipod)上失效的解决方案
jQuery的live绑定为什么会在mobile safari上失效呢?其实可以追溯到jQuery里live的实现方式.live的实现方式实际上是通过事件委托机制来实现的,也就是说是通过诸如冒泡的方式 ...
- C51指针的使用
指针就是指变量或数据所在的存储区地址.如一个字符型的变量 STR 存放在内存单元DATA 区的 51H 这个地址中,那么 DATA 区的 51H 地址就是变量 STR 的指针.在 C 语言中指针是一个 ...
- VS中的预先生成事件和后期生成事件
原文:VS中的预先生成事件和后期生成事件 在C#开发中,有时候需要在程序编译之前或之后做一些操作. 要达到这个目的,可以使用Visual Studio中的预先生成事件和后期生成事件. 下图是一个简单例 ...
- POJ3349 Snowflake Snow Snowflakes(哈希)
题目链接. 分析: 哈希竟然能这么用.检查两片雪花是否相同不难,但如果是直接暴力,定会超时.所以要求哈希值相同时再检查. AC代码: #include <iostream> #includ ...