一键呼出小米公交卡

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值