日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Android 9.0 添加预置第三方输入法/设置默认输入法(软键盘)

發布時間:2023/12/31 综合教程 31 生活家
生活随笔 收集整理的這篇文章主要介紹了 Android 9.0 添加预置第三方输入法/设置默认输入法(软键盘) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android 輸入法設置文章

  Android 9.0 默認輸入法的設置流程分析

Android 9.0 添加預置第三方輸入法/設置默認輸入法(軟鍵盤)


  

前言

在一些Android項目中往往需要預置第三方輸入法或自己的輸入法,這篇文章就簡單講解如何預置第三方輸入法apk及設置默認輸入法

結果展示

在介紹基本的調整方法前,先看看效果圖, 如下

調整方法

代碼位置

/frameworks/base/packages/SettingsProvider/res/values/defaults.xml

/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java

/frameworks/base/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java

修改步驟

(一) 設置啟用的輸入方法列表 /frameworks/base/packages/SettingsProvider/res/values/defaults.xml

比如我們添加一個輸入法,包名及名稱為:net.myself.inputmethod.swpinyin2/.SWIME,defaults.xml加入兩個字符串常量,設置可選輸入法列表及默認輸入法如下:

1 <string name="enabled_input_methods" translatable="false">net.myself.inputmethod.swpinyin2/.SWIME:com.android.inputmethod.latin/.LatinIME</string>
2 <string name="default_input_method" translatable="false">net.sunniwell.inputmethod.swpinyin2/.SWIME</string>

View Code

enabled_input_methods ==> 啟用的輸入方法列表

default_input_method ==> 默認輸入法

(二) 加載到Setings數據庫 /frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java

DatabaseHelper.java的loadSecureSettings方法中加入:

1 loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS, R.string.enabled_input_methods);
2 loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD, R.string.default_input_method);

View Code

(三) 默認授予輸入法必要權限 /frameworks/base/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java

在DefaultPermissionGrantPolicy.java的grantDefaultSystemHandlerPermissions函數中,加入

注:權限根據實際需求修改

 1 PackageParser.Package MY_IME2 = getSystemPackage("net.myself.inputmethod.swpinyin2");
 2 if(MY_IME2 != null && doesPackageSupportRuntimePermissions(MY_IME2)){
 3      grantRuntimePermissions(MY_IME2, MICROPHONE_PERMISSIONS, userId);
 4      grantRuntimePermissions(MY_IME2, STORAGE_PERMISSIONS, userId);
 5      grantRuntimePermissions(MY_IME2, CONTACTS_PERMISSIONS, userId);
 6      grantRuntimePermissions(MY_IME2, LOCATION_PERMISSIONS, userId);
 7      grantRuntimePermissions(MY_IME2, CAMERA_PERMISSIONS, userId);
 8      grantRuntimePermissions(MY_IME2, PHONE_PERMISSIONS, userId);
 9      grantRuntimePermissions(MY_IME2, CALENDAR_PERMISSIONS, userId);
10 }

View Code

(四) 將需要預置的輸入法apk預編譯進image,打包,重新燒寫系統

經過如上調整,就可以在Settings中看到添加的第三方輸入法了,而且可以在Android原生輸入法和自己預置的輸入法間切換。

如果不需要Android原生輸入法可以將其直接刪掉。

大功告成!!

心有猛虎,細嗅薔薇,生活就該無懼無悔.....
PS:文章系作者工作學習總結,受作者知識水平的限制,文章難免有錯誤之處,僅供參考,轉載請注明出處:http://www.cnblogs.com/roger-yu/

總結

以上是生活随笔為你收集整理的Android 9.0 添加预置第三方输入法/设置默认输入法(软键盘)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。