一鍵呼出小米公交卡

原創作者: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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,333評論 25 708
  • ¥開啟¥ 【iAPP實現進入界面執行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,523評論 0 17
  • 漫長的人生路上,站在無數的十字路口,一步錯可能步步錯,那么,怎么才能巧妙的避開各種認知偏誤呢? 1、客觀評價自我 ...
    安心悅舍閱讀 560評論 2 2
  • 這之后的一天我將無聊的心思清理出大腦,開始安心等候第三天晚上的故事。盡管這樣會顯得無所事事,但正如封一所說,在結局...
    徐湘楠閱讀 438評論 3 6
  • 4.暸解文化後,如何使產品更貼近人心? 從文化定義的了解丶與文化類型認識後,接著是如何使我們的產品更加貼近人心,其...
    小慷閱讀 132評論 0 0