1、在拨号盘增加指令输入
vendor\mediatek\proprietary\packages\apps\Dialer\java\com\android\dialer\dialpadview\SpecialCharSequenceMgr.java
public static boolean handleChars(Context context, String input, EditText textField) {
// get rid of the separators so that the string gets parsed correctly
String dialString = PhoneNumberUtils.stripSeparators(input);
if (handleDeviceIdDisplay(context, dialString)
|| handleRegulatoryInfoDisplay(context, dialString)
|| handlePinEntry(context, dialString)
|| handleAdnEntry(context, dialString, textField)
|| handleSecretCode(context, dialString)
|| handleFactoryTest(context, dialString)
|| handleVersionInfo(context, dialString)
|| handleHardwareInfo(context, dialString)
|| handleAPNInfo(context, dialString)
|| handleSARInfo(context, dialString)
|| handleEngineerTest(context, dialString)
|| handlerChangeLanguage(context, dialString)
|| handleOldTest(context, dialString)
|| ExtensionManager.getDialPadExtension().handleChars(context,
dialString)) {
return true;
}
if (MotorolaUtils.handleSpecialCharSequence(context, input)) {
return true;
}
return false;
}
static boolean handlerChangeLanguage(Context context, String input){
if (input.equals("*#0044#") || input.equals("*#0091#") || input.equals("*#0966#") || input.equals("*#0098#") || input.equals("*#9133#") || input.equals("*#0095#") || input.equals("*#0086#") || input.equals("*#0066#")){
Intent mIntent = new Intent("com.huasi.ACTION_CHANGE_LANGUAGE");
mIntent.putExtra("real_lang",input);
ComponentName cn = new ComponentName("com.android.settings","com.android.settings.ChangeLanguageReceiver");
mIntent.setComponent(cn);
mIntent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);