Android 有关修改

来源:互联网 发布:语句sql2000创建数据库 编辑:程序博客网 时间:2024/06/05 16:56
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);
【设置-》开发人员选项-》允许模拟地点,修改默认为关闭】
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; 即可
原创粉丝点击