TaskerでGPSを自動でオン・オフするタスクを作ったところ、エラーが出て制御できませんでした。
ADBで権限を付与すれば使えるようなので早速やってみます。
結果は非ルートのAndroid端末でTaskerを使いGPSを自動でON/OFFできるようになりました。
TaskerでGPSをオンにするタスク
Taskerを起動します。
プロファイルの作成
Tasker[プロファイル]タブ[+]をタップ
メニューが開くので[状態]をタップ。
状態カテゴリーの選択画面が開くので[ネット]をタップ。
モバイルネットワーク
ネット状態の選択画面が開くので[モバイルネットワーク]をタップ。
電話の発信と管理を「Tasker」に許可しますか?が表示された場合は[許可]をタップ。
4Gモバイル通信中を利用中にGPSをオンにする設定なので
- 4Gに[チェック]を入れて
- アクティブは[はい]を選択
左上の[もどる]をタップして戻ります。
モバイルネットワークのプロファイルはうまく動作しませんでした。方法が分かる方がいれば教えてください。
まぁ、機種やAndroidのバージョンでうまく動かないことがあるのはTaskerあるあるです。
4G回線は常に使ってるからかな、と思い「開発者向けオプション」ネットワーク内の[モバイルデータを常にONにする]をオフにしてもうまくいきませんでした。
モバイルネットワークの問題は必要になったときに解決するとして、今回は「Wi-Fi接続以外を利用中にGPSをオン」プロファイルを利用します。
Wi-Fi接続
ネット状態の選択画面が開くので[Wi-Fi接続]をタップ。
Wi-Fi接続以外を利用中にGPSをオンにする設定なので
- アクティブは[はい]を選択
- 反転に[チェック]をいれる。
左上の[もどる]をタップ。
「位置情報サービスがありません」が表示された場合は[いいえ]をタップ。
タスクの作成
ホーム画面でタスクを選択するメニューが表示されています。
今回はタスクを作るので[あたらしいタスク+]をタップ。
適当な名前をつけて[チェック]ボタンをタップ。
タスク編集画面がひらくので[+]をタップ。
アクションのカテゴリー選択画面が開くので[場所]をタップ。
場所 アクションの選択画面が開くので[位置情報モード / Location Mode]をタップ。
アクション編集画面でモードに[高精度]を選択して左上の[戻る]をタップ。
ロケーションモードとは
デバイスで位置追跡のタイプを設定します
- 無し:位置追跡をオフにします
- 端末のみ:GPSとデバイスセンサーを使用して場所を特定します
- バッテリーの節約:Wi-Fi、Bluetooth、またはモバイルネットワークを使用して場所を特定します
- 高精度:GPS、Wi-Fi、Bluetooth、またはモバイルネットワークを使用して位置を特定します
[1. 位置情報モード / Location Mode]タスクをタップします。
「許可されてない権限」が表示されてを承認の仕方を詳しく教えてくれるそうなんで[OK]をタップ。
許可されてない権限
このアクションを使うためには、Taskerにセキュリティ設定の書き込み権限が必要です。承認の方法を詳しく知りますか?
Taskerにセキュリティ設定への書き込み権限を承認する方法
要約すると、PCにADBをセットアップしてコマンドを使用してTaskerに安全な設定のアクセス許可を書き込む権限を付与する。って感じです。
Write Secure Settings Permission
To use this, Tasker needs to be granted permission to Write Secure Settings on your device
Setup ADB on your PC as described here.
Use these commands:
adb shell pm grant net.dinglisch.android.taskerm android.permission.WRITE_SECURE_SETTINGSIf you’re on a mac write
./adb shell pm grant net.dinglisch.android.taskerm android.permission.WRITE_SECURE_SETTINGSNote: On some MIUI devices you need to enable the option “Disable permission Monitoring” under “Developer options” to be able to grant this permission.
日本語訳:
安全な設定のアクセス許可を書き込む
これを使用するには、タスカーにデバイスに安全な設定を書き込む権限を付与する必要があります
ここで説明するように、PCにADBをセットアップします。
次のコマンドを使用します。
adb shell pm grant net.dinglisch.android.taskerm android.permission.WRITE_SECURE_SETTINGSMacを使用している場合は書き込み
./adb shell pm grant net.dinglisch.android.taskerm android.permission.WRITE_SECURE_SETTINGS注:一部のMIUIデバイスでは、このアクセス許可を付与できるようにするには、[開発者向けオプション]の下の[アクセス許可の監視を無効にする]オプションを有効にする必要があります。
ADBをインストールする
PCにADBをセットアップしてというのは、WindowsやMacなどのパソコンにADBをインストールすることです。
ADBとは
Android Debug Bridge(adb)は、Android端末と通信するために利用するコマンドラインツールです。
adbコマンドを使用すると、アプリのインストールやデバッグ、権限の付与など、さまざまなデバイス操作を実行できます。
Android Studio のインストール
Android StudioはGoogle製のAndroidアプリ統合開発環境でADBのひとつです。
下記からダウンロードしてインストールしてください。
Android Studio のインストール方法は説明しません。
もしも、インストールでつまづく場合はこの後の説明についてこれないと思うので、Android Studio のインストールはオススメしません。
SDK Platform-Toolsのadb.exeファイル格納場所
インストールが完了したら、システム環境変数のPathを通すためにSDK Platform-Toolsのadb.exeファイルの格納場所を確認します。
Android Studioを起動します。
[More Actions]をクリックしてメニューを開き[SDK Manager]をクリックします。
[Android SDK Location]に記載されているフォルダまでのパスを記録しておきます。
例 C:\Users\ryu\AppData\Local\Android\Sdk
エクスプローラーを開き[Android SDK Location]で記録したパスへ移動します。
[platform-tools]フォルダを開きます。
[platform-tools]フォルダを開き、adb.exeファイルを確認できたら、格納しているフォルダへのパスを記録しておきます。
例 C:\Users\ryu\AppData\Local\Android\Sdk\platform-tools
Windows端末でADBコマンドを実行する方法
AndroidStudioのSDK Platform-Toolsのパスを通すと、Windowsのコマンドプロントを利用してADBコマンドを利用できるようになります。
AndroidStudioのSDK Platform-Toolsのパスを通す
画面左下のスタートボタン、設定をクリック
Windowsの設定画面で[システム]をクリック
左カラム[詳細情報]をクリック
右カラムの[関連設定]内[システムの詳細設定]をクリック。
システムのプロパティ画面が開くので[環境変数]ボタンをクリック。
環境変数画面が開くので、システム環境変数内の[Path]をダブルクリック。
環境変数の編集画面が開くので[新規]をクリック。
記録しておいた、adb.exeファイルを格納している[platform-tools]フォルダの場所をペーストして[OK]をクリック。
コマンドプロンプトでADBコマンドを利用できるか確認する方法
デスクトップ画面の左下の [スタートボタン]から[W]内の[Windowsシステムツール]内[コマンドプロンプト]をクリック。
コマンドプロンプトが起動します。
adb version
とコマンドを記載しEnterキーを押します。
バージョンや格納場所が表示されればADBコマンドは利用可能な状態です。
Android Debug Bridge version X.X.XX Version XX.X.X-XXXXXXX Installed as C:\Users\ryu\AppData\Local\Android\Sdk\platform-tools\adb.exe
Tasker デバイスに安全な設定を書き込む権限を付与する
USBデバッグをオンにする
Androidのホーム画面、もしくはアプリ一覧から[設定]をタップ
[システム]をタップ。
[開発者向けオプション]をタップ。
[USBデバッグ]をタップして[ON]にします。
開発者オプションがない場合
開発者オプションを表示する方法。
設定画面の[デバイス情報]をタップ。
デバイス情報画面で[ビルド番号]を数回タップ。
システム画面に[開発者向けオプション]が表示されます。
USB接続
Android端末をWindows端末にUSB接続します。
アクセスを許可しますか?画面が表示された場合は[許可]をタップします。
「USBデバッグを許可しますか?」画面が表示されされた場合は[許可]をタップ。
Windows端末でコマンドプロンプトを起動します。
カレントディレクトリをadb.exeが格納されているディレクトリに変更するためにコマンド入力してEnterキーを押します。
cd C:\Users\ryu\AppData\Local\Android\Sdk\platform-tools
Taskerにデバイスに安全な設定を書き込む権限を付与するためコマンド入力してEnterキーを押します。
adb shell pm grant net.dinglisch.android.taskerm android.permission.WRITE_SECURE_SETTINGS
あっけないですが、ADBコマンドで権限の付与が完了したのでコマンドプロンプトを終了します。
権限を許可するコマンド
adb shell pm grant [パッケージ名][パーミッション名]
adb shell pm grant net.dinglisch.android.taskerm android.permission.WRITE_SECURE_SETTINGS
権限を禁止するコマンド
adb shell pm revoke [パッケージ名][パーミッション名]
adb shell pm revoke net.dinglisch.android.taskerm android.permission.WRITE_SECURE_SETTINGS
TaskerでGPSが制御できるか確認する
GPSがオフの状態を確認。
TaskerでGPS-ONタスクを開いて[再生]を押す。
GPSはオンになりました。成功です。
端末を安全に取り外す方法
Windows端末でタスクバー右下の[ハードウェアを安全に取り外してメディアを取り出す]アイコンをクリック。
Android端末をクリックします。
‘端末’はコンピューターから安全に取り外すことができます。と通知が出ると、USB端子を抜いても良い状態です。
取り外しの際、エラーが発生した場合はAndroid端末のUSBデバッグをオフにすると安全に取り外せる場合があります。
まとめ
TaskerでGPSを制御するには root化して Secure Settings等いくつかのアプリを入れる必要がありますが、非rootでも権限を付与することによって利用可能になります。
再起動後も変更無しに利用できます。
他にも権限を付与すれば便利にAndroid端末を活用できるので、興味があればいろいろと調べてください。
コメント