安卓系统定制的时候经常要求内置一些输入法为默认输入法,并且授予默认权限,对很多大咖系统工程师来说这个是小菜一碟,但是对很多刚入行的系统工程师来说却是一个拦路虎;在这里,我就以日常开发经验为例,给咱们刚入行的系统工程师抛砖引玉。这个是在MTK安卓7.1上的一个示范;
--- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
+++ b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@translatable="false">com.iflytek.inputmethod.googleplay/com.iflytek.inputmethod.FlyIME+ translatable="false">com.google.android.apps.inputmethod.zhuyin/.ZhuyinInputMethodService - translatable="false">com.iflytek.inputmethod.googleplay/com.iflytek.inputmethod.FlyIME
+ translatable="false">com.google.android.apps.inputmethod.zhuyin/.ZhuyinInputMethodService
diff --git a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
class DatabaseHelper extends SQLiteOpenHelper {loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS,R.string.enabled_input_methods);+ loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS,+ R.string.enabled_input_methods_2);
loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,
R.string.config_default_input_method);
diff --git a/frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java b/frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java
--- a/frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java
public class PackageManagerService extends IPackageManager.Stub {
permissionsState.setGlobalGids(mGlobalGids);
if( pkg.packageName.contains("com.iflytek.inputmethod")
+ || pkg.packageName.contains("com.google.android"))
(END)