2019年10月16日水曜日

Automate android -app : Location

llamalab社のアンドロイドアプリ AutoMate
https://llamalab.com/automate/

GPS: 位置情報: Location 使用例

前準備 :
Androidのバージョンアップにともない、Locationを扱うにはルート権限が必要になった(OS設定なので、Automateに限らずMacroidなどでも同じ)。ルート化なんて恐ろしいので、お手軽な方法にしておく。
スマホをデバッグ状態にし、USBでつないだパソコンから位置情報を扱うアプリ(ここではAutomate)をAndroidに登録しておく。

1) スマホを「開発者向けオプション」(デバッグ状態)にする。
 ・(Android 4.2以降標準) 設定→システム→端末情報→ビルド番号を7回タップ→(PINの再入力)→「開発者向けオプション」を可にする。

 ・システム→詳細設定「開発者向けオプション」→(デバッグ)USBデバッグ ON。

2) パソコンにADB: Android Debug Bridgeというソフト群をインストールしてUSBでスマホと繋ぐ。
 ・当方、Debian Linuxなので、adbパッケージをインストール(apt install adb)。pathも通ってる(/usr/bin/adb)。Windows10等では"adb-setup"で検索。
・ターミナルからコマンド打ってみる・・・
 $ adb
 Android Debug Bridge version 1.0.39
 Version 1:8.1.0+r23-5
 Installed as /usr/lib/android-sdk/platform-tools/adb
 ...略

 $ adb devices
 List of devices attached
 * daemon not running; starting now at tcp:5037
 * daemon started successfully
 ABCDEFG12345678 unauthorized

 $ adb devices
 List of devices attached
 ABCDEFG12345678 device  ←デーモンが動いてる。OKっぽい


3) ADBを使って、AutomateがLocationを使うことをOSに書き込む。
adbの説明先 : https://developer.android.com/studio/command-line/adb?hl=JA

・今回使うアプリは llamalab社の Automate。
 https://llamalab.com/automate/doc/adb.html にコマンド例が載っている。2つのコマンドを送ればいい。

 modify secure system settings:
 adb -s <serial number> shell pm grant com.llamalab.automate android.permission.WRITE_SECURE_SETTINGS
 
 modify system settings:
 adb -s <serial number> shell pm grant com.llamalab.automate android.permission.CHANGE_CONFIGURATION

  -s <serial number> はスマホ1台接続の場合指定しなくていいが、一応指定しとく。
  pm : Package Manager
  grant : アプリにパーミッションを付与
  serial number : スマホのシリアルナンバー

実行:
 $ adb -s ABCDEFG12345678 shell pm grant com.llamalab.automate android.permission.WRITE_SECURE_SETTINGS
 $ adb -s ABCDEFG12345678 shell pm grant com.llamalab.automate android.permission.CHANGE_CONFIGURATION

以上 
automateの登録が済めばスマホの設定は元の状態に戻してOK。
参考までに削除例
adb shell pm revoke com.llamalab.automate android.permission.WRITE_SECURE_SETTINGS
adb shell pm revoke com.llamalab.automate android.permission.CHANGE_CONFIGURATION
- - - 前準備終了 - - -


仕様 :
GPS 位置情報 をオンにする。

フロー :
位置情報 location がONなら何もしない。オフだったらオンにする。


コーディング :
LOCATION Location provider enabled?
 Immediately, GPS

LOCATION Location provider set statte
 GPS, On

前準備でLocation使用の設定をしたので、Flow画面に modify... 項目が出る。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。