<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                今天給大家分享MTK平臺系統編程與修改的另一個部分,分別是輸入法校準、自動校準默認關、首字母大寫默認開、按鍵聲音默認關、Voice Control 移除系統中文,默認 英文,下面一個一個的介紹給大家 ①Language & input> Android Keyboard>Auto Correction > Uncheck as Default(Off) 語言輸入-安卓鍵盤-自動校準默認關 根據紅色框關鍵詞用命令行在settings下執行熱詞檢索: ![](https://box.kancloud.cn/2016-03-10_56e0e2a3a55be.jpg) ~~~ .../mnt/disk3/jsp/xxx8382$ find packages/apps/Settings/ -name "*.xml" | xargs grep "Very aggressive" -l ~~~ 搜索無果,于是擴大搜索范圍,鍵入如下命令行 ~~~ .../mnt/disk3/jsp/xxx8382$ find packages/ -name "*.xml" | xargs grep "Very aggressive" -l packages/inputmethods/LatinIME/java/res/values/strings.xml packages/inputmethods/LatinIME/java/res/values-en-rIN/strings.xml packages/inputmethods/LatinIME/java/res/values-en-rGB/strings.xml ~~~ 得到3條結果,進入查看得到熱詞 auto_correction_threshold_mode_very_aggressive 搜索熱詞 ~~~ android5@ubuntu2015:/mnt/disk3/jsp/xxx8382$ find packages/ -name "*.xml" | xargs grep "auto_correction_threshold_mode_very_aggressive" -l packages/inputmethods/LatinIME/java/res/values-es/strings.xml packages/inputmethods/LatinIME/java/res/values-ms-rMY/strings.xml packages/inputmethods/LatinIME/java/res/values-my/strings.xml packages/inputmethods/LatinIME/java/res/values-ky-rKG/strings.xml packages/inputmethods/LatinIME/java/res/values-hu/strings.xml packages/inputmethods/LatinIME/java/res/values-ne-rNP/strings.xml packages/inputmethods/LatinIME/java/res/values-pl/strings.xml packages/inputmethods/LatinIME/java/res/values-lo-rLA/strings.xml packages/inputmethods/LatinIME/java/res/values/strings.xml packages/inputmethods/LatinIME/java/res/values/config-auto-correction-thresholds.xml ~~~ 查看 config-auto-correction-thresholds.xml 文件 ,查找如下代碼 ~~~ <!-- The index of the auto correction threshold values array. --> <string name="auto_correction_threshold_mode_index_off" translatable="false">0</string> <string name="auto_correction_threshold_mode_index_modest" translatable="false">1</string> <string name="auto_correction_threshold_mode_index_aggressive" translatable="false">2</string> <string name="auto_correction_threshold_mode_index_very_aggressive" translatable="false">3</string> <!-- The array of the auto correction threshold settings values. --> <string-array name="auto_correction_threshold_mode_indexes" translatable="false"> <item>@string/auto_correction_threshold_mode_index_off</item> <item>@string/auto_correction_threshold_mode_index_modest</item> <item>@string/auto_correction_threshold_mode_index_aggressive</item> <item>@string/auto_correction_threshold_mode_index_very_aggressive</item> </string-array> <!-- The array of the human readable auto correction threshold settings entries. --> <string-array name="auto_correction_threshold_modes" translatable="false"> <item>@string/auto_correction_threshold_mode_off</item> <item>@string/auto_correction_threshold_mode_modest</item> <item>@string/auto_correction_threshold_mode_aggressive</item> <item>@string/auto_correction_threshold_mode_very_aggressive</item> </string-array> ~~~ 繼續熱詞搜索追蹤 ~~~ jsp@ubuntu2015:/mnt/disk3/jsp/RMT8382$ find packages/ -name "*.xml" | xargs grep "auto_correction_threshold_modes" -l packages/inputmethods/LatinIME/java/res/values/config-auto-correction-thresholds.xml packages/inputmethods/LatinIME/java/res/xml/prefs_screen_correction.xml ~~~ 查看 prefs_screen_correction.xml 文件 修改如下,運用 Beyond Compare 工具直接copy ~~~ <ListPreference android:key="auto_correction_threshold" android:title="@string/auto_correction" android:summary="@string/auto_correction_summary" android:entryValues="@array/auto_correction_threshold_mode_indexes" android:entries="@array/auto_correction_threshold_modes" android:defaultValue="@string/auto_correction_threshold_mode_index_off" android:persistent="true" /> ~~~ 就可以重新修改默認值,重新編譯工程,刷機即可看到效果 重新刷機第一次開機之后的效果圖: ![](https://box.kancloud.cn/2016-03-10_56e0e2a3b86a6.jpg) ②系統輸入法自動大寫默認開/輸入法按鍵音效默認關/輸入法拼寫校準默認開-修改 熱詞檢索命令 ~~~ android5@ubuntu2015:/mnt/disk3/jsp/RMT8382$ find packages/ -name "*.xml" | xargs grep "按鍵音效" -l packages/inputmethods/LatinIME/java/res/values-zh-rCN/strings.xml android5@ubuntu2015:/mnt/disk3/jsp/RMT8382$ find packages/ -name "*.xml" | xargs grep "sound_on_keypress" -l packages/inputmethods/LatinIME/java/res/values-es/strings.xml packages/inputmethods/LatinIME/java/res/values-ms-rMY/strings.xml packages/inputmethods/LatinIME/java/res/values-my/strings.xml packages/inputmethods/LatinIME/java/res/values-ky-rKG/strings.xml packages/inputmethods/LatinIME/java/res/values-hu/strings.xml packages/inputmethods/LatinIME/java/res/values-ne-rNP/strings.xml packages/inputmethods/LatinIME/java/res/values-pl/strings.xml packages/inputmethods/LatinIME/java/res/values-lo-rLA/strings.xml packages/inputmethods/LatinIME/java/res/values/strings.xml packages/inputmethods/LatinIME/java/res/values-es-rUS/strings.xml packages/inputmethods/LatinIME/java/res/values-bn/strings.xml packages/inputmethods/LatinIME/java/res/values-tl/strings.xml packages/inputmethods/LatinIME/java/res/xml/prefs_screen_preferences.xml ~~~ 查看 prefs_screen_preferences.xml 文件,檢索熱詞 ~~~ jsp@ubuntu2015:/mnt/disk3/jsp/xxx8382$ find packages/ -name "*.xml" | xargs grep "config_default_sound_enabled" -l packages/inputmethods/LatinIME/java/res/values/config-per-form-factor.xml ~~~ 其實在prefs_screen_preferences.xml 可以直接修改,根據需求修改如下: ~~~ #首字母大寫開 <CheckBoxPreference android:key="auto_cap" android:title="@string/auto_cap" android:summary="@string/auto_cap_summary" android:defaultValue="true" android:persistent="true" /> #輸入法按鍵音效關 <CheckBoxPreference android:key="sound_on" android:title="@string/sound_on_keypress" android:defaultValue="false" android:persistent="true" /> #輸入法拼寫校準默認開 <CheckBoxPreference android:key="vibrate_on" android:title="@string/vibrate_on_keypress" android:defaultValue="@bool/config_default_vibration_enabled" android:persistent="true" /> ~~~ 刷機第一次啟動的效果: ![](https://box.kancloud.cn/2016-03-10_56e0e2a3cf9e7.jpg) ③setting - voice control - language for voice control ?-Keep only english 設置-聲音控制-語言只留英語去掉中文 最初效果圖,默認簡體中文:![](https://box.kancloud.cn/2016-03-10_56e0e2a3e308f.jpg) 定位到settings下檢索關鍵字 ~~~ jsp@ubuntu2015:/mnt/disk3/jsp/xxx8382$ find packages/apps/Settings/ -type f|xargs grep "繁體中文" -l ~~~ 搜索無果,擴大檢索范圍 ~~~ jsp@ubuntu2015:/mnt/disk3/jsp/xxx8382$ find ./ -type f|xargs grep "繁體中文" -l ~~~ 發現結果根本不是想要的,而且由于源碼較大,所以這個果斷放棄,采用另一個方案,使用Eclipse工具來檢索,這是筆者介紹給大家的一個非常實用的方法,以后絕對會用 得著不管是檢索資料還是反編譯apk等,都很實用 連接USB打開debugging,打開Eclipse → 打開 DDMS 點擊設備 如下界面操作: ![](https://box.kancloud.cn/2016-03-10_56e0e2a401f74.jpg) 檢索包名 com.mediatek.voicecommand ~~~ android5@ubuntu2015:/mnt/disk3/jsp/RMT8382$ find -name "*.xml"|xargs grep "com.mediatek.voicecommand" -l ./vendor/mediatek/proprietary/packages/apps/VoiceCommand/tests/AndroidManifest.xml ./vendor/mediatek/proprietary/packages/apps/VoiceCommand/res/xml/voice_ui_available_preference.xml ./vendor/mediatek/proprietary/packages/apps/VoiceCommand/res/xml/voiceprocessinfo.xml ./vendor/mediatek/proprietary/packages/apps/VoiceCommand/AndroidManifest.xml ~~~ 得到如上結果,大大縮小我們要查找的范圍,繼續之前的檢索 ~~~ android5@ubuntu2015:/mnt/disk3/jsp/RMT8382$ find vendor/mediatek/proprietary/packages/apps/VoiceCommand -type f|xargs grep "繁體中文" -l vendor/mediatek/proprietary/packages/apps/VoiceCommand/res/xml/voicelanguage.xml ~~~ 得到 voicelanguage.xml 資源文件,繼續下一步檢索 ~~~ android5@ubuntu2015:/mnt/disk3/jsp/RMT8382$ find -name "*.java"|xargs grep "voicelanguage" -l ./out/target/common/R/com/mediatek/voicecommand/R.java ./out/target/common/obj/APPS/VoiceCommand_intermediates/src/com/mediatek/voicecommand/R.java ~~~ 搜到的都不是想要的,繼續檢索,在當前目錄下,看某個java文件調用了剛剛DDMS解析的 list 資源 id ~~~ android5@ubuntu2015:/mnt/disk3/jsp/RMT8382$ find vendor/mediatek/proprietary/packages/apps/VoiceCommand -name "*.java"|xargs grep "list" -l vendor/mediatek/proprietary/packages/apps/VoiceCommand/tests/src/com/mediatek/voicecommand/tests/VoiceCommandTest.java vendor/mediatek/proprietary/packages/apps/VoiceCommand/src/com/mediatek/voicecommand/ui/settings/VoiceUiSettings.java vendor/mediatek/proprietary/packages/apps/VoiceCommand/src/com/mediatek/voicecommand/mgr/ConfigurationManager.java vendor/mediatek/proprietary/packages/apps/VoiceCommand/src/com/mediatek/voicecommand/mgr/AppDataManager.java vendor/mediatek/proprietary/packages/apps/VoiceCommand/src/com/mediatek/voicecommand/business/VoiceContacts.java vendor/mediatek/proprietary/packages/apps/VoiceCommand/src/com/mediatek/voicecommand/business/VoiceWakeupMode.java vendor/mediatek/proprietary/packages/apps/VoiceCommand/src/com/mediatek/voicecommand/service/VoiceCommandManagerStub.java vendor/mediatek/proprietary/packages/apps/VoiceCommand/src/com/mediatek/voicecommand/cfg/ConfigurationXML.java ~~~ 打開 VoiceUiSettings.java 查看系統代碼,檢索到相關資源 ~~~ @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { if (KEY_VOICE_UI_LANGUAGE.equals(preference.getKey())) {// 這就是Preference 被點擊之后跳轉的選項,也就是Voice Control 選項 Intent intent = new Intent( "com.mediatek.voicecommand.VOICE_CONTROL_LANGUAGE"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); return true; } else if ...... } ~~~ 根據 Activity action 檢索Acticity 名稱 ~~~ jsp@ubuntu2015:/mnt/disk3/jsp/xxx8382$ find vendor/mediatek/proprietary/packages/apps/VoiceCommand -name "*.xml"|xargs grep "com.mediatek.voicecommand.VOICE_CONTROL_LANGUAGE" -l vendor/mediatek/proprietary/packages/apps/VoiceCommand/AndroidManifest.xml ~~~ 得到如下 Activity : ~~~ <activity android:name=".ui.settings.VoiceUiAvailableLanguageActivity" android:label="@string/voice_ui_language_title" android:taskAffinity="com.android.settings" android:configChanges="orientation|keyboardHidden|keyboard|navigation" android:parentActivityName=".ui.settings.VoiceUiSettings"> <intent-filter> <action android:name="com.mediatek.voicecommand.VOICE_CONTROL_LANGUAGE"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity> ~~~ 查看 VoiceUiAvailableLanguageActivity 代碼 ~~~ @Override public void onCreate(Bundle savedInstanceState) { Xlog.d(TAG, "OnCreate VoiceUiAvailableLanguageFragment"); super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.voice_ui_available_langs); mVoiceConfigMgr = ConfigurationManager.getInstance(this); if (mVoiceConfigMgr == null) { Xlog.e(TAG, "ConfigurationManager is null"); return; } mAvailableLangs = mVoiceConfigMgr.getLanguageList(); // 繼續查看 ConfigurationManager getLanguageList() 代碼 // mDefaultLanguage = mVoiceConfigMgr.getCurrentLanguage();// 這里 mDefaultLanguage int 默認為 0 ...... } } ~~~ ConfigurationManager getLanguageList() 代碼 ~~~ public String[] getLanguageList() { int size = mLanguageList.size(); if (size == 0) { return null; } String[] language = new String[size]; // Log.i(VoiceCommandManagerService.TAG, "mLanguageList = "+ size); for (int i = 0; i < size; i++) { language[i] = mLanguageList.get(i).mName; } return language; } ~~~ mLanguageList 變量賦值的地方: ~~~ /* * ConfigurationManager for control configuration * * @param context */ private ConfigurationManager(Context context) { ...... mCurrentLanguageIndex = mConfigurationXML .readVoiceLanguangeFromXml(mLanguageList);// 來自 ConfigurationXML 的 readVoiceLanguangeFromXml 函數 ...... } ~~~ 繼續查看 ConfigurationXML 的 readVoiceLanguangeFromXml 函數 ~~~ /** * Read language info from res. * * @param languageList * language list instance */ public int readVoiceLanguangeFromXml( ...... XmlPullParser parser = mContext.getResources().getXml(// 這里就是加載語言選項 xml 的地方,下面貼上 xml 內容 R.xml.voicelanguage); if (parser == null) { Log.e(TAG, "readVoiceLanguangeFromXml Got execption"); return curIndex; } ...... } ~~~ voicelanguage.xml 內容: ~~~ <?xml version="1.0" encoding="UTF-8"?> <!-- Engineer-Jsp add remove 1 and 2 item default 0 --> <Languages> <Language TypeName="English" ID="0" Code="en-US" FileName="keyword/3.xml" /> <DefaultLanguage ID="0" /> </Languages> <!-- <Language TypeName="簡體中文" ID="1" Code="zh-CN" FileName="keyword/1.xml" /> <Language TypeName="繁體中文" ID="2" Code="zh-TW" FileName="keyword/2.xml" /> --> ~~~ 這里已經是我改過的,需求是去掉所有中文只留英文選項,修改 TypeName="English" 的 ID 和 DefaultLanguage ID 都為 0 之后保存,繼續修改java邏輯 回到我們的 VoiceUiAvailableLanguageActivity ,只需要注釋掉幾句代碼就OK了 ~~~ @Override public void onCreate(Bundle savedInstanceState) { Xlog.d(TAG, "OnCreate VoiceUiAvailableLanguageFragment"); super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.voice_ui_available_langs); mVoiceConfigMgr = ConfigurationManager.getInstance(this); if (mVoiceConfigMgr == null) { Xlog.e(TAG, "ConfigurationManager is null"); return; } mAvailableLangs = mVoiceConfigMgr.getLanguageList(); // mDefaultLanguage = mVoiceConfigMgr.getCurrentLanguage();//注釋此句代碼,因為 mDefaultLanguage 默認為0,不再需要其他選項,自己默認為0 ...... } ~~~ ~~~ @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { if (preference instanceof RadioButtonPreference) { // selectLanguage((RadioButtonPreference) preference); // 注釋掉此句,不過不注釋也不影響,只是多做了一些操作而已,都是多余的 Xlog.d(TAG, "default language changed to " + mAvailableLangs[mDefaultLanguage]); finish(); } return true; } ~~~ selectLanguage 函數代碼: ~~~ private void selectLanguage(RadioButtonPreference preference) { if (mLastSelectedPref != null) { if (mLastSelectedPref == preference) { return; } mLastSelectedPref.setChecked(false); } mDefaultLanguage = Integer.parseInt(preference.getKey().toString()); Xlog.d(TAG, "set default language to " + mAvailableLangs[mDefaultLanguage]); mVoiceConfigMgr.setCurrentLanguage(mDefaultLanguage); preference.setChecked(true); mLastSelectedPref = preference; } ~~~ 最后make自己的系統工程,重新燒錄可看效果 效果圖: ![](https://box.kancloud.cn/2016-03-10_56e0e2a418682.jpg)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看