一键呼出小米公交卡

作者: AchillesL | 来源:发表于2016-11-11 11:52 被阅读0次

    原创作者:AchillesL
    若转载文章,请在明显的位置标明文章出处

    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://www.haomeiwen.com/subject/qdqfpttx.html