一键呼出小米公交卡

1. 前言

  小米5可以用NFC公交卡直接刷公交和地铁,非常方便,唯一美中不足的地方是:

  需要在锁屏/黑屏的情况下,长按音量下键或者双击Home键,才能呼出公交卡界面。

  有一个情景:那如果我在需要刷公交卡时,已经进入了桌面,那我就必须先按关机键锁屏,再长按音量下键,才能呼出公交卡界面,有强迫症的人表示伤不起。
  既然这样,我们可以自己写个小程序呼出公交卡界面。

2. 查看公交卡界面的相关信息

  先呼出羊城通界面,然后用adb命令查看顶级Activity的相关信息。

  adb 命令:
  adb shell ddumpsys activity activities
  
  可见信息如图1下:
图1 顶级Activity的相关信息

通过截图,可以得到以下信息:
a. 包名:
com.miui.tsmclient
b. activity:
com.miui.tsmclient.ui.quick.DoubleClickActivity

其中还有action,flag等一些信息。

2. 写自己的APP

a. 新建Activity

图2 主界面

  如图2所示,很简单地,按照我们用adb查到的信息,构造一个Intent,然后通过startActivity调用,然后退出程序。

b. 修改小问题

  不过这样做会出现一个问题:我们点击app的时候,会出现一闪然后退出的情况。这个问题可以通过修改一下theme来解决,我们希望这个Activity不显示,如图3所示。

图3 修改Activity 的 theme

3. 在手机中调用APP

  到这里,APP已经写好,怎么才能更方便地调用呢?我打算把它放入小米的悬浮按钮里面,如图4所示。

图4 加到悬浮按钮中

4. 效果

  点击悬浮按钮,此时就能进入公交卡页面。

图5 通过我们的APP呼出公交卡界面

5. 后续优化

  后来有网友提醒,本文最后实现的效果,还需要点击一下卡面,才能刷公交卡。若想省去这一步,在Intent加入特定键值对就可以了。
 intent.putExtra("event_source", "key_volume_down");

6 代码地址

https://github.com/AchillesLzg/MiCard

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012928653/article/details/53335394
文章标签: 小米公交卡 Android
个人分类: Android 其他
想对作者说点什么? 我来说一句

公交IC卡收费管理系统

2012年08月31日 3.97MB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭