添加输入法
在framework/base/packages/SettingsProvider/res/values/defaults.xml 中
写入以下代码 第一个enabled_input_methods 是可以添加多个输入法的,我这里一个是原生的输入法和百度输入法
格式像这样 > com.android.inputmethod.latin/.LatinIME:com.baidu.input/.ImeService 中间是通过 :分割的
第二句是配置默认的输入法,这里既是百度输入法
com.android.inputmethod.latin/.LatinIME:com.baidu.input/.ImeService
com.baidu.input/.ImeService
然后在 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)方法中添加百度输入法的所有权限
-
-
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);
-
}
原作者:时光一去不在
|