当前位置: 首页 > news >正文

做的好的农产品网站有哪些头像在线设计生成器

做的好的农产品网站有哪些,头像在线设计生成器,爱给网官网免费素材,搭建电商网站前言喜欢的小伙伴欢迎关注#xff0c;我会定期分享Android知识点及解析#xff0c;还会不断更新的BATJ面试专题#xff0c;欢迎大家前来探讨交流#xff0c;如有好的文章也欢迎投稿。什么是暗码#xff1f;在拨号盘中输入*#*##*#*后#xff0c;APP 可以监控到这些输入我会定期分享Android知识点及解析还会不断更新的BATJ面试专题欢迎大家前来探讨交流如有好的文章也欢迎投稿。什么是暗码在拨号盘中输入*#*##*#*后APP 可以监控到这些输入然后做相应的动作比如启动应用是不是有点骚。下面看下这个骚操作是如何实现的。效果预览源码DialtactsActivity#showDialpadFragmentDialtactsActivity 中有个 showDialpadFragment 方法用来加载显示拨号盘因此入口就从 showDialpadFragment 看起基于 Android P 分析。private void showDialpadFragment(boolean animate) {//……final FragmentTransaction ft  getFragmentManager().beginTransaction();if (dialpadFragment  null) {dialpadFragment  new DialpadFragment();ft.add(R.id.dialtacts_container, dialpadFragment, TAG_DIALPAD_FRAGMENT);} else {ft.show(dialpadFragment);}//……}具体实现在 DialpapFragment 中看到 DialpapFragment 实现了 TextWatcherTextWatcher 有 3 个重要方法分别为beforeTextChangedonTextChanged 和 afterTextChanged重点看 afterTextChanged 方法。DialpadFragment#afterTextChangedpublic class DialpadFragment extends Fragmentimplements View.OnClickListener,View.OnLongClickListener,View.OnKeyListener,AdapterView.OnItemClickListener,TextWatcher,PopupMenu.OnMenuItemClickListener,DialpadKeyButton.OnPressedListener {//……Overridepublic void afterTextChanged(Editable input) {// When DTMF dialpad buttons are being pressed, we delay SpecialCharSequenceMgr sequence,// since some of SpecialCharSequenceMgrs behavior is too abrupt for the touch-down// behavior.if (!digitsFilledByIntent SpecialCharSequenceMgr.handleChars(getActivity(), input.toString(), digits)) {// A special sequence was entered, clear the digitsdigits.getText().clear();}if (isDigitsEmpty()) {digitsFilledByIntent  false;digits.setCursorVisible(false);}if (dialpadQueryListener ! null) {dialpadQueryListener.onDialpadQueryChanged(digits.getText().toString());}updateDeleteButtonEnabledState();}//……}这里调用了 SpecialCharSequenceMgr 辅助工具类的 handleChars 方法看这个方法。SpecialCharSequenceMgr#handleCharspublic static boolean handleChars(Context context, String input, EditText textField) {// get rid of the separators so that the string gets parsed correctlyString dialString  PhoneNumberUtils.stripSeparators(input);if (handleDeviceIdDisplay(context, dialString)|| handleRegulatoryInfoDisplay(context, dialString)|| handlePinEntry(context, dialString)|| handleAdnEntry(context, dialString, textField)|| handleSecretCode(context, dialString)) {return true;}if (MotorolaUtils.handleSpecialCharSequence(context, input)) {return true;}return false;}handleChars 方法中会对各种特殊的 secret code 进行匹配处理这里我们看 handleSecretCode。SpecialCharSequenceMgr#handleSecretCodestatic boolean handleSecretCode(Context context, String input) {// Secret code specific to OEMs should be handled first.if (TranssionUtils.isTranssionSecretCode(input)) {TranssionUtils.handleTranssionSecretCode(context, input);return true;}// Secret codes are accessed by dialing *#*##*#* or *##if (input.length()  8  input.startsWith(*#*#)  input.endsWith(#*#*)) {String secretCode  input.substring(4, input.length() - 4);TelephonyManagerCompat.handleSecretCode(context, secretCode);return true;}return false;}再看下 TelephonyManagerCompat.handleSecretCode 方法。TelephonyManagerCompat#handleSecretCodepublic static void handleSecretCode(Context context, String secretCode) {// Must use system service on O to avoid using broadcasts, which are not allowed on O.if (BuildCompat.isAtLeastO()) {if (!TelecomUtil.isDefaultDialer(context)) {LogUtil.e(TelephonyManagerCompat.handleSecretCode,not default dialer, cannot send special code);return;}context.getSystemService(TelephonyManager.class).sendDialerSpecialCode(secretCode);} else {// System service call is not supported pre-O, so must use a broadcast for N-.Intent intent new Intent(SECRET_CODE_ACTION, Uri.parse(android_secret_code://  secretCode));context.sendBroadcast(intent);}}可以看到在拨号中接收到*#*##*#* 这样的指令时程序会对外发送广播这就意味着我们能够接收这个广播然后可以做我们想做的事情。接下来我们看看这个接受广播代码是怎么写。应用首先在 AndroidManifest 文件中注册广播接收器。android:name.SecretCodeReceiver接收广播启动应用。public class SecretCodeReceiver extends BroadcastReceiver {Overridepublic void onReceive(Context context, Intent intent) {if (intent ! null  SECRET_CODE_ACTION.equals(intent.getAction())){Intent i  new Intent(Intent.ACTION_MAIN);i.setClass(context, MainActivity.class);i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(i);}}}这样只要在拨号中输入*#*#1010#*#*就能启动相应的应用程序OK收功。觉得文章不错的小伙伴帮忙点点赞加关注哦 有什么问题的话也欢迎大家前来探讨交流。
http://www.yutouwan.com/news/241524/

相关文章:

  • 公司网站首页设计电商推广文案
  • 网站建设服务商有哪些软件开发技术文档
  • 广州专业网站建设价格注册资金
  • 做网站的文案是指wordpress忘记密码邮件收不到
  • 汉化版网站开发软件wordpress WP-Wiki
  • 衡阳市住房建设局网站Pelican wordpress
  • 山西手机版建站系统开发保健品网站建设案例
  • 那个网站可以做空比特币房产集团网站建设
  • scratch网站开发软件工程学什么及就业前景
  • 眼镜企业网站建设方案想学做网站seo 在哪学 电话多少
  • 机电建设有限公司网站自己做网站统计
  • 帮公司制作一个网站是如何收费室内设计联盟官方app
  • 汕头网站建设开发个人免费注册公司网站
  • 网上如何建网站wordpress加速优化插件
  • 网站推广的主要方式网站充值记账凭证怎么做
  • wordpress建站多个域名唯品会官网一家做特卖的网站
  • 农家乐网站建设营销方案网站欣赏 公司网站案例
  • 定制网站开发价格怎么看出是模板网站
  • 网站开发手册下载win淘宝客wordpress主题模板
  • 为什么我的网站百度搜不到一般学校网站的后台用什么做
  • 网站打开的速度很慢应该怎么做网站建设项目管理
  • 建企业网站的步骤做简历最好的网站
  • 邮箱检测网站服务器系统搭建网站源码
  • 怎么做点击图片进入网站模板之家免费官网下载
  • 网站开发历史西安定制网页设计
  • 沈阳市做网站电话wordpress 获取用户
  • 如何快速的做网站网站开发与设计
  • 个人网站做淘宝客会怎样动漫设计与制作专业就业前景
  • 代刷网网站建设一般纳税人利润300万要交多少税
  • 网站建设和电商区别惠安 网站建设公司