原創作者:AchillesL
若轉載文章,請在明顯的位置標明文章出處
1. 前言
??小米5可以用NFC公交卡直接刷公交和地鐵,非常方便,唯一美中不足的地方是:
??需要在鎖屏/黑屏的情況下,長按音量下鍵或者雙擊Home鍵,才能呼出公交卡界面。
??有一個情景:那如果我在需要刷公交卡時,已經進入了桌面,那我就必須先按關機鍵鎖屏,再長按音量下鍵,才能呼出公交卡界面,有強迫癥的人表示傷不起。
??既然這樣,我們可以自己寫個小程序呼出公交卡界面。
2. 查看公交卡界面的相關信息
??先呼出羊城通界面,然后用adb命令查看頂級Activity的相關信息。
??adb 命令:
adb shell ddumpsys activity activities
??可見信息如圖1下:
通過截圖,可以得到以下信息:
a. 包名:
com.miui.tsmclient
b. activity:
com.miui.tsmclient.ui.quick.DoubleClickActivity
其中還有action,flag等一些信息。
2. 寫自己的APP
a. 新建Activity
??如圖2所示,很簡單地,按照我們用adb查到的信息,構造一個Intent,然后通過startActivity調用,然后退出程序。
b. 修改小問題
??不過這樣做會出現一個問題:我們點擊app的時候,會出現一閃然后退出的情況。這個問題可以通過修改一下theme來解決,我們希望這個Activity不顯示,如圖3所示。
3. 在手機中調用APP
??到這里,APP已經寫好,怎么才能更方便地調用呢?我打算把它放入小米的懸浮按鈕里面,如圖4所示。
4. 效果
??點擊懸浮按鈕,此時就能進入公交卡頁面。
5. 后續優化
??后來有網友提醒,本文最后實現的效果,還需要點擊一下卡面,才能刷公交卡。若想省去這一步,在Intent加入特定鍵值對就可以了。
intent.putExtra("event_source", "key_volume_down");