您的位置:首页 > 移动开发 > Android开发

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; 即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 有关修改