Rk3399 9.0 默認百度輸入法並授予默認權限

基於rk3399 9.0版本代碼,在系統中預置百度輸入法並授予其所有權限

和之前的一篇文章設置方法有所不同 之前的文章 點擊這裏

添加輸入法

在framework/base/packages/SettingsProvider/res/values/defaults.xml 中

寫入一下代碼 第一個enabled_input_methods 是可以添加多個輸入法的,我這裏一個是原生的輸入法和百度輸入法

格式像這樣 > com.android.inputmethod.latin/.LatinIME:com.baidu.input/.ImeService 中間是通過 :分割的

第二句是配置默認的輸入法,這裏既是百度輸入法

<string name="enabled_input_methods" translatable="false">com.android.inputmethod.latin/.LatinIME:com.baidu.input/.ImeService</string>
<string name="config_default_input_method" translatable="false">com.baidu.input/.ImeService</string>

然後在 framework/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java中

添加下面兩句 ,這裏因爲是Settings.Secure 所以要放到 private void loadSecureSettings(SQLiteDatabase db) 方法中

   loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS, R.string.enabled_input_methods);
   loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD, R.string.config_default_input_method);

配置權限

9.0和之前的7.1 8.0 有所不同,它這裏將權限單獨放在PM的permission目錄下

在framework/base/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java的

grantDefaultSystemHandlerPermissions(int userId)方法中添加百度輸入法的所有權限

+      //BAIDU
+      PackageParser.Package BAIDU = getSystemPackage("com.baidu.input");
+          if(BAIDU != null && doesPackageSupportRuntimePermissions(BAIDU)){
+            grantRuntimePermissions(BAIDU, MICROPHONE_PERMISSIONS, userId);
+            grantRuntimePermissions(BAIDU, STORAGE_PERMISSIONS, userId);
+            grantRuntimePermissions(BAIDU, CONTACTS_PERMISSIONS, userId);
+            grantRuntimePermissions(BAIDU, LOCATION_PERMISSIONS, userId);
+            grantRuntimePermissions(BAIDU, CAMERA_PERMISSIONS, userId);
+            grantRuntimePermissions(BAIDU, PHONE_PERMISSIONS, userId);
+            grantRuntimePermissions(BAIDU, CALENDAR_PERMISSIONS, userId);
+          }
+

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章