1. 程式人生 > >Android7.0更換系統預設輸入法

Android7.0更換系統預設輸入法

        更換安卓7.0系統預設輸入法的方法:

     首先我們需要在 frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java裡面做修改

      private void loadSecureSettings(SQLiteDatabase db) {

             / /我們需要在這個方法中新增下面的方法      

            /// M: change default inputMethod by xiangzaixiansheng @{
            
            loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS,
                    R.string.default_Enable_Input_Methods

);
            ///@}

         }

        注意上面標紅的欄位,在6.0之前這裡是可以直接傳入String的值的,在這之後就只能傳入Int值了。所以我們需要在相應的String.xml檔案中新增相應的欄位。

     <!-- change default inputMethod by xiangzaixiansheng-->
    <string name="default_Enable_Input_Methods">com.android.inputmethod.latin/.LatinIME:com.emoji.keyboard.touchpal/com.cootek.smartinput5.TouchPalIME

</string>

      這裡我們新增的是觸寶輸入法。這裡我們應該注意的輸入法的包名ID(上面標紅的位置);

      我們還需要在frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java裡面進行設定

               if (!mImeSelectedOnBoot) {
                   Slog.w(TAG, "Reset the default IME as \"Resource\" is ready here.");
                   /// M: change default inputMethod byxiangzaixiansheng  @{
                   // String preInstalledImeName = SystemProperties.get("ro.mtk_default_ime");
                   String preInstalledImeName ="com.emoji.keyboard.touchpal/com.cootek.smartinput5.TouchPalIME";
                   ///@}

         為了防止切換語言後,預設輸入法發生變化,我們還要註釋掉一段程式碼。

   mContext.registerReceiver(
                new BroadcastReceiver() {
                    @Override
                    public void onReceive(Context context, Intent intent) {
                        synchronized(mMethodMap) {
                    /// M: change default inputMethod by [email protected]{
                            //resetStateIfCurrentLocaleChangedLocked();
                    ///@}       
                        }
                    }
                }, filter);

        按照上面的方法就可以實現Android6.0和7.0預設輸入法的設定

相關推薦

Android7.0更換系統預設輸入法

        更換安卓7.0系統預設輸入法的方法:      首先我們需要在 frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.ja

Android 7.0 刪除原生輸入法(AOSP)&更換系統預設輸入法

一、刪除原生輸入法 1 . 刪除build/target/product/core.mk 檔案下的原生輸入法: PRODUCT_PACKAGES += \ BasicDreams \ BlockedNumberProvider \

android7.0修改系統預設時間

    客戶需求:修改預設系統時間為2017/1/1,即燒機後開機顯示的時間。Index: SystemServer.java =================================================================== --- Sy

[sg] Android 6.0 修改系統預設時區和修改12小時製為24小時制

修改預設時區 在最終編譯出的配置檔案build.prop增加屬性 persist.sys.timezone=Asia/Shanghai (我這裡預設選擇東八區上海,其他對應的時區在frameworks\base\core\res\res\xml\time_z

Android替換系統預設輸入法

由於產品需求,需將Android原生輸入法先後替換成搜狗輸入法、百度輸入法、谷歌拼音輸入法,本文以替換為谷歌輸入法為例。  packages/apps下新建資料夾,將需替換的第三方輸入法apk放入該資料夾,編寫Android.mk檔案,一谷歌輸入法為例,如下: LOCAL_

Android系統預設輸入法的修改

1.  frameworks\base\packages\SettingsProvider\res\values\defaults.xml 檔案中修改預設輸入法為搜狗輸入法         <stringname="config_default_input_metho

Android7.0呼叫系統相機拍照、訪問相簿問題。

關於Android7.0呼叫系統相機拍照、訪問相簿的一些問題: 在Android6.0中Google提出了動態申請許可權的Api,呼叫相機拍照,訪問SDcard等操作都需要先申請對應的許可權如下: <uses-permission android:name="and

Android替換/修改系統預設輸入法

各大輸入法的服務 ro.mtk_default_ime=com.tencent.qqpinyin.QQPYInputMethodService//預設qq輸入法 ro.mtk_default_ime=com.sohu.inputmethod.sogou.SogouIME//

Android:應用內下載更新app,apk包在Android7.0以上系統安裝失敗

最近又更新了一下Android studio的gradle版本 結果。。。 與儲存相關的無一倖免,Android6.0引入的動態許可權控制(Runtime Permissions),Android7.0又引入“私有目錄被限制訪問”,“StrictMode API 政策”。

Android7.0呼叫系統相機和裁剪

最近將專案的targetSdkVersion升級到了26,發現呼叫系統相機的時候報了下面這個錯誤: android.os.FileUriExposedException: file:///storage/emulated/0/Android/data/b

Android7.0呼叫系統拍照、系統相簿(圖片壓縮、檢視原圖、許可權處理)

效果以及需求 檢視原圖可點選放大,可兩指放大等 1.PopupWindow的簡單使用 PopupWindow最基本的三個條件是一定要設定的:View contentView

Unity呼叫android7.0以上系統相機崩潰問題

點選開啟連結之http://www.cnblogs.com/dazhao/p/6547811.html 前看了許多解決android7.0系統拍照奔潰問題的帖子,照做之後還是有問題,最終發現了上面的部落格,經過測試可用,untiy互動的話需要改一些東西,以及上面帖子裡的de

Android7.0呼叫系統相機拍照、訪問相簿問題上傳到伺服器

//model層 package zhaochuang.bawei.com.myapplication.model; import java.util.Map; import okhttp3.RequestBody; import zhaochuang.bawei.com

如何更換Android系統預設字型(Android6.0)

Android系統中通過Typeface.java載入字型: frameworks/base/graphics/java/android/graphics/Typeface.java private static void init() { // Load

appium_v1.4.16版本不適配android7.0系統,運行報錯“Attempt to re-install io.appium.settings without first uninstalling”

urn fail tin ins 找到 auto his ger 問題: 要解決的問題:appium在androidV7.0系統上運行時報錯 Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install io.a

Android7.0調用系統相機拍照、讀取系統相冊照片+CropImageView剪裁照片

alpha pri process 點擊事件 self tps 而在 center ase Android手機拍照、剪裁,並非那麽簡單 簡書地址:[我的簡書–T9的第三個三角] 前言 項目中,基本都有用戶自定義頭像或自定義背景的功能,實現方法一般都是調用

樹莓派3B上編譯Android7 0系統

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android系統新增新輸入法並設為預設輸入法

由於產品需求,需將Android原生輸入法先後替換成搜狗輸入法、百度輸入法、谷歌拼音輸入法,本文以替換為谷歌輸入法為例。  packages/apps下新建資料夾,將需替換的第三方輸入法apk放入該資料夾,編寫Android.mk檔案,一谷歌輸入法為例,如下: LOCAL_

Android7.0 預設開啟關閉gps功能

frameworks/base/packages/SettingsProvider/res/values/defaults.xml 預設開啟 <string name="def_location_providers_allowed" translatabl

適合Android7.0以上(到9.0)系統,獲取 關於手機--狀態資訊 (如:MAC,IMEI,IMSI,ICCID)

這裡面也寫了獲取本機手機號碼的程式碼,但是測試之後發現只有華為nove3 才可以獲取到,不過其他一些重要的資訊都可以拿到,MAC,IMEI,IMSI,ICCID。 上程式碼吧 這是一些許可權 <uses-permission android:name=