Android 有关修改
2017-05-26 11:08
218 查看
1.上层怎么使camera具有聚焦功能。
修改代码路径
packages/apps/Camera/src/com/android/camera/FocusManager.java
173行代码
源代码:
mFocusAreaSupported = (mParameters.getMaxNumFocusAreas() > 0&&isSupported(Parameters.FOCUS_MODE_AUTO,
mParameters.getSupportedFocusModes()));
修改成
mFocusAreaSupported = true;
分析:因为如果底层camera没有聚焦功能,mParameters.getMaxNumFocusAreas() = 0,导致mFocusAreaSupported 为false。
我们设置mFocusAreaSupported = true使其强制有camera功能
2.设置GoolePlay AppWidget
代码路径:packages/apps/Launcher2/res/xml/default_workspace.xml
<appwidget
launcher:packageName="com.android.vending"
launcher:className="com.android.vending.MarketWidgetProvider"
launcher:screen="3"
launcher:x="1"
launcher:y="1"
launcher:spanX="2"
launcher:spanY="2" />
3.接通电话后,手机会先震动一下。这个震动要去掉
代码路径:Phone/src/com/android/phone/CallNotifier.java
将大约在1094行左右
if (mVibrator == null) {
mVibrator = (Vibrator) mApplication.getApplicationContext().getSystemService(Context.VIBRATOR_SERVICE);
}
这些注释掉
大约在1299行
mVibrator.vibrate(MO_CALL_VIBRATE_TIME);这行也注释掉
4.修改修改电话匹配位数为11位
代码路径:frameworks/base/telephony/java/android/telephony/PhoneNumberUtils.java
大约在1571行
static final int MIN_MATCH = FeatureOption.RGK_FOR_TCL_CUSTOM?11:FeatureOption.RGK_KARBONN_SUPPORT?10:FeatureOption.RGK_MATCH_EIGHT?8:7;
这行代码改成
static final int MIN_MATCH = 11;即可
5.Android 修改拨号盘匹配规则
欢迎转载,但请保留文章原始出处:
CSDN:http://www.csdn.net
雨季o莫忧离:http://blog.csdn.net/luckkof
以特定数字开头的号码有机会匹配到以其他数字开头的号码。
例如, 以+7开头的号码和以8开头的号码可以互相查找,例如:当输入+712时,能正确匹配到812****的号码,或输入812时能匹配到+712****的号码
[SOLUTION]
1 使用中间号码匹配
中间号码匹配的支持需要做如下的改动:
alps/mediatek/externel/sqlite/custom/sqlite3_android_custom.cpp
#ifdef CONFIG_CMCC_SUPPORT
create_number_match_function(0, 1);
create_name_match_function(0, 2);
#endif
将这里的编译条件去掉。
不同版本代码会有不同,只要确保 create_number_match_function(0, 1); 这行代码被编译到即可.
2 在DialerSearchController.java中afterTextChanged可以对输入的号码做截断.
将以+7或者8打头的号码截取掉这部分号码,然后再将截取过后的号码做query.
6.印度默认的紧急电话是:100,101,102,请预置到软件里
代码路径:frameworks/base/telephony/java/android/telephony/PhoneNumberUtils.java
大约在1718行左右
String []emergencyNumList1 = {"112", "911", "113", "115", "117", "118"};
改成
String []emergencyNumList1 = {"112", "911", "113", "115", "117", "118", "100", "101", "102"};即可
7.常见问题修改
【设置-》SIM卡管理-》卡(1/2)代表色/名字/本机号-》本机号显示,修改默认为后四位】
frameworksbasecorejavaandroidproviderTelephony.java
public static final int DISLPAY_NUMBER_DEFAULT = DISPLAY_NUMBER_LAST;
【设置-》SIM卡管理-》默认SIM卡-》数据连接-》点击SIM卡时,在弹出的提示框标题中加入字符提示】
frameworksbasepackagesSystemUIresvalues-zh-rCNstrings.xml
packagesappsSettingsresvalues-zh-rCNstrings.xml
packagesappsSettingsresvalues-zh-rTWstrings.xml
修改如下字符串:
<string name="data_connection_service">数据连接-打开产生流量费用</string>
【设置-》存储-》首选安装位置-》修改默认为SD卡】
frameworksbasepackagesSettingsProvidersrccomandroidproviderssettingsDatabaseHelper.java
函数private void loadSystemSettings(SQLiteDatabase db)中
loadSetting(stmt, Settings.Secure.DEFAULT_INSTALL_LOCATION,
PackageHelper.APP_INSTALL_AUTO);
改为
loadSetting(stmt, Settings.Secure.DEFAULT_INSTALL_LOCATION,
PackageHelper.APP_INSTALL_EXTERNAL);
【设置-》位置服务-》GPS卫星,修改默认为关闭】
frameworksbasepackagesSettingsProviderresvaluesdefaults.xml
<string name="def_location_providers_allowed" translatable="false">gps</string>
改为
<string name="def_location_providers_allowed" translatable="false"></string>
【设置-》日期和时间-》自动确定日期和时间,修改默认为关闭】
frameworksbasepackagesSettingsProviderresvaluesdefaults.xml
<bool name="def_auto_time">false</bool>
【设置-》日期和时间-》自动确定时区,修改默认为关闭】
frameworksbasepackagesSettingsProviderresvaluesdefaults.xml
<bool name="def_auto_time_zone">false</bool>
【设置-》日期和时间-》使用24小时格式,修改默认为打开】
frameworksbasecorejavaandroidtextformatDateFormat.java
在该文件中下面的代码:
public static boolean is24HourFormat(Context context) {
String value = Settings.System.getString(context.getContentResolver(),
Settings.System.TIME_12_24);
if (value == null) {
Locale locale = context.getResources().getConfiguration().locale;
synchronized (sLocaleLock) {
if (sIs24HourLocale != null && sIs24HourLocale.equals(locale)) {
return sIs24Hour;
}
}
java.text.DateFormat natural =
java.text.DateFormat.getTimeInstance(
java.text.DateFormat.LONG, locale);
if (natural instanceof SimpleDateFormat) {
SimpleDateFormat sdf = (SimpleDateFormat) natural;
String pattern = sdf.toPattern();
if (pattern.indexOf('H') >= 0) {
value = "24";
} else {
value = "12";
}
} else {
value = "12";
}
synchronized (sLocaleLock) {
sIs24HourLocale = locale;
sIs24Hour = !value.equals("12");
}
}
boolean b24 = !(value == null || value.equals("12"));
return b24;
}
改为
public static boolean is24HourFormat(Context context) {
String value = Settings.System.getString(context.getContentResolver(),
Settings.System.TIME_12_24);
if (value == null) {
Settings.System.putString(context.getContentResolver(),
Settings.System.TIME_12_24,"24");
value = "24";
}
boolean b24 = !(value == null || value.equals("12"));
return b24;
}
【设置-》开发人员选项-》USB调试,修改默认为关闭】
packagesappsProvisionsrccomandroidprovisionDefaultActivity.java
在该文件中加入下面的代码:
Settings.Secure.putInt(getContentResolver(), Settings.Secure.ADB_ENABLED, 0);
【设置-》开发人员选
4000
项-》允许模拟地点,修改默认为关闭】
frameworksbasepackagesSettingsProvidersrccomandroidproviderssettingsDatabaseHelper.java
将该文件中的如下代码:
// Allow mock locations default, based on build
loadSetting(stmt, Settings.Secure.ALLOW_MOCK_LOCATION,
"1".equals(SystemProperties.get("ro.allow.mock.location")) ? 1 : 0);
修改为:
// Allow mock locations default, based on build
loadSetting(stmt, Settings.Secure.ALLOW_MOCK_LOCATION,0);
【设置-》关于手机-》型号,修改默认值】
buildcoreproduct_config.mk
ifndef PRODUCT_MODEL
PRODUCT_MODEL := XXXXXX
endif
【设置-》关于手机-》版本号,修改默认值】
mediatekconfigcommonProjectConfig.mk
MTK_BUILD_VERNO = XXXXXX
8.电话本中的联系人,不能存储名字带.的,比如DR.ABC,手机存储是显示为DR ABC,点被空格取代了,请修正。带.的名字是很常用的,国外很多名字是带.的。同时要确保搜索联系人时,能搜出带.的名字。
代码修改路径:packages/providers/ContactsProvider/src/com/android/providers/contacts/NameSplitter.java
大约在227行
修改
super(fullName, " .,", true);
改成
super(fullName, " ,", true);
9.修改statusbar状态栏透明度
1. 请添加半透明的图片资源,例如:statusbar_background.9.png,到路径alps
frameworksbasepackagesSystemUIresdrawable-hdpi 下
2. 如果是gemini工程请修改gemini_status_bar.xml,反之修改status_bar.xml,
把其中的android:background="@drawable/status_bar_background 修改成
android:background="@drawable/statusbar_background
3. 修改PhoneWindowManager.java的beginLayoutLw方法,如下(修改代码用//mtk
added标记):
public void beginLayoutLw(int displayWidth, int displayHeight, int
displayRotation) {
......
mUnrestrictedScreenLeft = mUnrestrictedScreenTop = 0;
if (mStatusBar.isVisibleLw() && !mStatusBar.isAnimatingLw()) {
// If the status bar is currently requested to be
visible,
// and not in the process of animating on or off, then
// we can tell the app that it is covered by it.
// mSystemTop = mUnrestrictedScreenTop + mStatusBarHeight;//mtk added
把这行注释掉
}
}
}
10.数据连接默认关闭
1.代码修改路径
mediatek/frameworks/base/op/java/com/mediatek/op/telephony/TelephonyExt.java
if (FeatureOption.RGK_DEFAULT_MOBILE_DATA_ENABLED) {
- return true;
+ //return true;
}
mediatek/operator/OP02/frameworks/java/com/mediatek/op/telephony/TelephonyExtOP02.java
public class TelephonyExtOP02 extends TelephonyExt {
public boolean isDefaultDataOn() {
- return true;
+ return false;
}
public boolean isAutoSwitchDataToEnabledSim() {
- return true;
+ return false;
}
public boolean isDefaultEnable3GSIMDataWhenNewSIMInserted() {
- return true;
+ return false;
}
}
11.卡1和卡2中联系人不识别问题
修改方法:
代码路径:packages/apps/Contacts/src/com/android/contacts/list/DefaultContactListAdapter.java
大约在356行 将
if(indicate==-1){
indicateview.setBackgroundResource(R.drawable.ic_phone);
}else if(indicate==1){
indicateview.setBackgroundResource(R.drawable.ic_sim1);
}else if(indicate==2){
indicateview.setBackgroundResource(R.drawable.ic_sim2);
}
修改成
final int slotId = SIMInfoWrapper.getDefault().getSimSlotById(indicate);
if(slotId == -1){
indicateview.setBackgroundResource(R.drawable.ic_phone);
}else if(slotId == 0){
indicateview.setBackgroundResource(R.drawable.ic_sim1);
}else if(slotId == 1){
indicateview.setBackgroundResource(R.drawable.ic_sim2);
}
注意加入jar包
import com.mediatek.phone.SIMInfoWrapper; 即可
修改代码路径
packages/apps/Camera/src/com/android/camera/FocusManager.java
173行代码
源代码:
mFocusAreaSupported = (mParameters.getMaxNumFocusAreas() > 0&&isSupported(Parameters.FOCUS_MODE_AUTO,
mParameters.getSupportedFocusModes()));
修改成
mFocusAreaSupported = true;
分析:因为如果底层camera没有聚焦功能,mParameters.getMaxNumFocusAreas() = 0,导致mFocusAreaSupported 为false。
我们设置mFocusAreaSupported = true使其强制有camera功能
2.设置GoolePlay AppWidget
代码路径:packages/apps/Launcher2/res/xml/default_workspace.xml
<appwidget
launcher:packageName="com.android.vending"
launcher:className="com.android.vending.MarketWidgetProvider"
launcher:screen="3"
launcher:x="1"
launcher:y="1"
launcher:spanX="2"
launcher:spanY="2" />
3.接通电话后,手机会先震动一下。这个震动要去掉
代码路径:Phone/src/com/android/phone/CallNotifier.java
将大约在1094行左右
if (mVibrator == null) {
mVibrator = (Vibrator) mApplication.getApplicationContext().getSystemService(Context.VIBRATOR_SERVICE);
}
这些注释掉
大约在1299行
mVibrator.vibrate(MO_CALL_VIBRATE_TIME);这行也注释掉
4.修改修改电话匹配位数为11位
代码路径:frameworks/base/telephony/java/android/telephony/PhoneNumberUtils.java
大约在1571行
static final int MIN_MATCH = FeatureOption.RGK_FOR_TCL_CUSTOM?11:FeatureOption.RGK_KARBONN_SUPPORT?10:FeatureOption.RGK_MATCH_EIGHT?8:7;
这行代码改成
static final int MIN_MATCH = 11;即可
5.Android 修改拨号盘匹配规则
欢迎转载,但请保留文章原始出处:
CSDN:http://www.csdn.net
雨季o莫忧离:http://blog.csdn.net/luckkof
以特定数字开头的号码有机会匹配到以其他数字开头的号码。
例如, 以+7开头的号码和以8开头的号码可以互相查找,例如:当输入+712时,能正确匹配到812****的号码,或输入812时能匹配到+712****的号码
[SOLUTION]
1 使用中间号码匹配
中间号码匹配的支持需要做如下的改动:
alps/mediatek/externel/sqlite/custom/sqlite3_android_custom.cpp
#ifdef CONFIG_CMCC_SUPPORT
create_number_match_function(0, 1);
create_name_match_function(0, 2);
#endif
将这里的编译条件去掉。
不同版本代码会有不同,只要确保 create_number_match_function(0, 1); 这行代码被编译到即可.
2 在DialerSearchController.java中afterTextChanged可以对输入的号码做截断.
将以+7或者8打头的号码截取掉这部分号码,然后再将截取过后的号码做query.
6.印度默认的紧急电话是:100,101,102,请预置到软件里
代码路径:frameworks/base/telephony/java/android/telephony/PhoneNumberUtils.java
大约在1718行左右
String []emergencyNumList1 = {"112", "911", "113", "115", "117", "118"};
改成
String []emergencyNumList1 = {"112", "911", "113", "115", "117", "118", "100", "101", "102"};即可
7.常见问题修改
【设置-》SIM卡管理-》卡(1/2)代表色/名字/本机号-》本机号显示,修改默认为后四位】
frameworksbasecorejavaandroidproviderTelephony.java
public static final int DISLPAY_NUMBER_DEFAULT = DISPLAY_NUMBER_LAST;
【设置-》SIM卡管理-》默认SIM卡-》数据连接-》点击SIM卡时,在弹出的提示框标题中加入字符提示】
frameworksbasepackagesSystemUIresvalues-zh-rCNstrings.xml
packagesappsSettingsresvalues-zh-rCNstrings.xml
packagesappsSettingsresvalues-zh-rTWstrings.xml
修改如下字符串:
<string name="data_connection_service">数据连接-打开产生流量费用</string>
【设置-》存储-》首选安装位置-》修改默认为SD卡】
frameworksbasepackagesSettingsProvidersrccomandroidproviderssettingsDatabaseHelper.java
函数private void loadSystemSettings(SQLiteDatabase db)中
loadSetting(stmt, Settings.Secure.DEFAULT_INSTALL_LOCATION,
PackageHelper.APP_INSTALL_AUTO);
改为
loadSetting(stmt, Settings.Secure.DEFAULT_INSTALL_LOCATION,
PackageHelper.APP_INSTALL_EXTERNAL);
【设置-》位置服务-》GPS卫星,修改默认为关闭】
frameworksbasepackagesSettingsProviderresvaluesdefaults.xml
<string name="def_location_providers_allowed" translatable="false">gps</string>
改为
<string name="def_location_providers_allowed" translatable="false"></string>
【设置-》日期和时间-》自动确定日期和时间,修改默认为关闭】
frameworksbasepackagesSettingsProviderresvaluesdefaults.xml
<bool name="def_auto_time">false</bool>
【设置-》日期和时间-》自动确定时区,修改默认为关闭】
frameworksbasepackagesSettingsProviderresvaluesdefaults.xml
<bool name="def_auto_time_zone">false</bool>
【设置-》日期和时间-》使用24小时格式,修改默认为打开】
frameworksbasecorejavaandroidtextformatDateFormat.java
在该文件中下面的代码:
public static boolean is24HourFormat(Context context) {
String value = Settings.System.getString(context.getContentResolver(),
Settings.System.TIME_12_24);
if (value == null) {
Locale locale = context.getResources().getConfiguration().locale;
synchronized (sLocaleLock) {
if (sIs24HourLocale != null && sIs24HourLocale.equals(locale)) {
return sIs24Hour;
}
}
java.text.DateFormat natural =
java.text.DateFormat.getTimeInstance(
java.text.DateFormat.LONG, locale);
if (natural instanceof SimpleDateFormat) {
SimpleDateFormat sdf = (SimpleDateFormat) natural;
String pattern = sdf.toPattern();
if (pattern.indexOf('H') >= 0) {
value = "24";
} else {
value = "12";
}
} else {
value = "12";
}
synchronized (sLocaleLock) {
sIs24HourLocale = locale;
sIs24Hour = !value.equals("12");
}
}
boolean b24 = !(value == null || value.equals("12"));
return b24;
}
改为
public static boolean is24HourFormat(Context context) {
String value = Settings.System.getString(context.getContentResolver(),
Settings.System.TIME_12_24);
if (value == null) {
Settings.System.putString(context.getContentResolver(),
Settings.System.TIME_12_24,"24");
value = "24";
}
boolean b24 = !(value == null || value.equals("12"));
return b24;
}
【设置-》开发人员选项-》USB调试,修改默认为关闭】
packagesappsProvisionsrccomandroidprovisionDefaultActivity.java
在该文件中加入下面的代码:
Settings.Secure.putInt(getContentResolver(), Settings.Secure.ADB_ENABLED, 0);
【设置-》开发人员选
4000
项-》允许模拟地点,修改默认为关闭】
frameworksbasepackagesSettingsProvidersrccomandroidproviderssettingsDatabaseHelper.java
将该文件中的如下代码:
// Allow mock locations default, based on build
loadSetting(stmt, Settings.Secure.ALLOW_MOCK_LOCATION,
"1".equals(SystemProperties.get("ro.allow.mock.location")) ? 1 : 0);
修改为:
// Allow mock locations default, based on build
loadSetting(stmt, Settings.Secure.ALLOW_MOCK_LOCATION,0);
【设置-》关于手机-》型号,修改默认值】
buildcoreproduct_config.mk
ifndef PRODUCT_MODEL
PRODUCT_MODEL := XXXXXX
endif
【设置-》关于手机-》版本号,修改默认值】
mediatekconfigcommonProjectConfig.mk
MTK_BUILD_VERNO = XXXXXX
8.电话本中的联系人,不能存储名字带.的,比如DR.ABC,手机存储是显示为DR ABC,点被空格取代了,请修正。带.的名字是很常用的,国外很多名字是带.的。同时要确保搜索联系人时,能搜出带.的名字。
代码修改路径:packages/providers/ContactsProvider/src/com/android/providers/contacts/NameSplitter.java
大约在227行
修改
super(fullName, " .,", true);
改成
super(fullName, " ,", true);
9.修改statusbar状态栏透明度
1. 请添加半透明的图片资源,例如:statusbar_background.9.png,到路径alps
frameworksbasepackagesSystemUIresdrawable-hdpi 下
2. 如果是gemini工程请修改gemini_status_bar.xml,反之修改status_bar.xml,
把其中的android:background="@drawable/status_bar_background 修改成
android:background="@drawable/statusbar_background
3. 修改PhoneWindowManager.java的beginLayoutLw方法,如下(修改代码用//mtk
added标记):
public void beginLayoutLw(int displayWidth, int displayHeight, int
displayRotation) {
......
mUnrestrictedScreenLeft = mUnrestrictedScreenTop = 0;
if (mStatusBar.isVisibleLw() && !mStatusBar.isAnimatingLw()) {
// If the status bar is currently requested to be
visible,
// and not in the process of animating on or off, then
// we can tell the app that it is covered by it.
// mSystemTop = mUnrestrictedScreenTop + mStatusBarHeight;//mtk added
把这行注释掉
}
}
}
10.数据连接默认关闭
1.代码修改路径
mediatek/frameworks/base/op/java/com/mediatek/op/telephony/TelephonyExt.java
if (FeatureOption.RGK_DEFAULT_MOBILE_DATA_ENABLED) {
- return true;
+ //return true;
}
mediatek/operator/OP02/frameworks/java/com/mediatek/op/telephony/TelephonyExtOP02.java
public class TelephonyExtOP02 extends TelephonyExt {
public boolean isDefaultDataOn() {
- return true;
+ return false;
}
public boolean isAutoSwitchDataToEnabledSim() {
- return true;
+ return false;
}
public boolean isDefaultEnable3GSIMDataWhenNewSIMInserted() {
- return true;
+ return false;
}
}
11.卡1和卡2中联系人不识别问题
修改方法:
代码路径:packages/apps/Contacts/src/com/android/contacts/list/DefaultContactListAdapter.java
大约在356行 将
if(indicate==-1){
indicateview.setBackgroundResource(R.drawable.ic_phone);
}else if(indicate==1){
indicateview.setBackgroundResource(R.drawable.ic_sim1);
}else if(indicate==2){
indicateview.setBackgroundResource(R.drawable.ic_sim2);
}
修改成
final int slotId = SIMInfoWrapper.getDefault().getSimSlotById(indicate);
if(slotId == -1){
indicateview.setBackgroundResource(R.drawable.ic_phone);
}else if(slotId == 0){
indicateview.setBackgroundResource(R.drawable.ic_sim1);
}else if(slotId == 1){
indicateview.setBackgroundResource(R.drawable.ic_sim2);
}
注意加入jar包
import com.mediatek.phone.SIMInfoWrapper; 即可
相关文章推荐
- 有关动态修改SiteMap的困惑
- 有关lomboz生成的ejb-jar。xml和jboss。xml文件需要修改地方的记录
- Android(1.5) 开机图片/文字/动画 修改
- android 修改 system 目录下的文件
- android 下修改 hosts文件 及 out of memory的解决
- Android平台刷机包 修改制作方法
- Android中如何修改系统时间(应用程序获得系统权限)
- Android(1.5及以上版本) 开机图片/文字/动画分析[转载、修改部分内容]
- 修改Android开机画面
- 有关EXE加载和调用DLL函数的例子;用ATL函数修改注册表和内存存贮的一些认识(一)
- android porting——配置文件的修改
- 有关Android调用服务全解析
- 在终端下修改Android手机(Broncho A1)的系统设置
- 新手入门——如何修改OPhone(Android)应用程序的图标和名字?
- 有关 ORA-01779无法修改与非键值保存表对应的列
- 有关工程路径变化后的修改
- 修改android公共控件和后台服务
- 阅读android有关sensor的源码总结
- Android 版seesmic修改API方法
- 修改android框架代码