クイック設定パネルにUSBデバッグの切り替えボタンを設置する方法

Android7から利用できる、クイック設定パネルに「USBデバッグ」の切り替えボタンを追加するプログラムを作成しました。
今回、GitHubにソースを公開しましたので解説記事を書きます。

なぜ作成したのか

銀行系アプリなど一部のアプリは、USBデバッグがONになっていると起動できない作りになっているものがあります。
該当のアプリを使うたびに、端末の設定から開発者向けオプションに進んでUSBデバッグをON/OFFするのが面倒になってきたので、クイック設定パネルにボタンがあれば楽だなと思って作成しました。

なぜソース公開するにいたったか

最初は、普通にストアにあげようと思って作成を始めましたが、USBデバッグの状態をアプリから操作するには、下記の権限が必要なことが判明しました。

android.permission.WRITE_SECURE_SETTINGS

サードパーティのアプリには付与できない権限のため、ストアに公開できないことが確定しました。
ただ、この権限はadbコマンドでパッケージ名を直接指定すれば付与できます。
apkファイルと権限を付与するadbコマンドを公開すれば、他人に使用してもらうことは可能ですが、どこの馬の骨が作ったかわからないapkをインストールしてもらえるわけもないので、ソースごと公開することにしました。

アプリでやっていることを簡単に言えば、BroadcastReceiver で端末の起動を受けて、TileService を開始し、クイック設定パネルにボタンを追加しています。
TileServiceを使ったサンプルがあまりないので、サンプルソースとして参考になれば幸いです。

adbコマンドで権限を付与するには

下記のコマンドで可能です。apkをインストールしてからコマンド実行すると権限が付与されます。

adb shell pm grant 【パッケージ名】 android.permission.WRITE_SECURE_SETTINGS

さいごに

対象のプロジェクトのソースコードとapkファイルは下記に公開しています。

UsbDebugButton (GitHab)

ではまた。

SNSで共有
kobayu
  • kobayu
  • 当サイトの管理人です。
    仕事でアプリ開発やWebサイト開発やサーバーサイドの開発をやってます。
    Twitter: @kobayu_777