Android 編程下的 Secret Code

來源:互聯網
上載者:User

標籤:android   style   blog   ar   io   color   os   使用   sp   

我們很多人應該都做過這樣的操作,開啟鍵盤輸入 *#*#4636#*#* 等字元就會彈出一個介面顯示手機相關的一些資訊,這個功能在 Android 中被稱為 Android Secret Code,除了這些系統預置的 Secret Code,我們也可以實現自己的 Secret Code,而且實現起來非常簡單。

要實現自己的 Secret Code,只需要向系統註冊一個 Broadcast Receiver,不需要任何許可權,如下所示:

<receiver android:name=".SecretReceiver">    <intent-filter>        <action android:name="android.provider.Telephony.SECRET_CODE"/>        <data android:scheme="android_secret_code" android:host="0123"/>    </intent-filter></receiver>

只需要註冊 action 為 android.provider.Telephony.SECRET_CODE,並且 scheme 為android_secret_code 的 Broadcast Receiver,這樣當使用者在鍵盤輸入 *#*#0123#*#* 時就會調用我們註冊的 Receiver 了,在 Receiver 中把接收到的 Intent 資訊打出來會是這樣:

  • Intent { act=android.provider.Telephony.SECRET_CODE dat=android_secret_code://0123 flg=0x10 cmp=me.angeldevil.secretcode/.SecretReceiver }

這個邏輯的處理在撥號應用裡,如果使用第三方撥號應用而這個應用又沒有處理的話,也許會失效。

那麼這個功能有什麼做用呢?這個就看應用需要了,由於這個 Broadcast Receiver 運行在你自己的應用進程內,所以可以讀取你應用內的一切資料。比如說你可以在接收到 Broadcast 後 dump 應用狀態,可以開啟一個 Activity 做一些特殊設定,可以啟用/禁用一些功能(比如 Flyme 就可以在輸入 *#*#6961#*#* 後在設定中顯示一些協助工具功能,可以開啟 Root 等)。但是,不同的 Receiver 可以註冊相同的 android:host,可能會跟其他應用的設定衝突,不過一般情況下應用應該不會使用這個功能,非系統級應用的控制還是放到應用內比較好。

Android 編程下的 Secret Code

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.