Android 使用暗码启动App
暗码,比如*#06#查看手机IMEI号。*#06#就是一个暗码。
我们可能有时会有这样的需求,比如我想通过手机拨号来启动一个内置无界面的app(假设拨*#*#6636#*#*),那该如何实现?
既然暗码是点击拨号按钮启动的,那么肯定是在源码Dialer 中通过全局广播形式发给其他内置app的,废话不多说,进入Dialer 源码看看就 明白了
系统源码中可以体现出来: \android\packages\apps\Dialer\ src\com\android\dialer\dialpad\DialpadFragment.java a .拨号盘的输入内容处理是在 DialpadFragment.java 的public void afterTextChanged(Editable input) {}方法中 b.在fterTextChanged(Editable input) {}方法中 会调用 SpecialCharSequenceMgr.handleChars(getActivity(), input.toString(), mDigits)) {} c.在 handleChars方法中会对暗码及PIN码进行处理 代码如下: 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