RICOH THETAのプラグイン開発は基本的にAndroidアプリ開発を行うことになる。色々いじってカメラの調子がおかしくなった後、工場出荷時に戻すたびに行っている設定などのメモ。
画面表示
画面がないTHETAのAndroidデスクトップを表示する。
- scrcpy
- おすすめ。ただ、キーボードショートカットを覚える必要がある。macOSだと
optionキー+"h"
でホームに戻るのを覚えておけばなんとかなる。 -
Vysor
- 広告表示が時折開発に支障をきたす(httpsな通信が必要で時刻設定されていないと通信できずにエラーになる)。
時刻設定
- 時刻設定しないとhttps接続できない
- スマホアプリで接続することで、カメラの時計が設定されるので、スマホアプリとの接続でもよい。
- コマンドで設定する場合(dateTimeZone)
-
adb shell
でTHETAのshellに入る。(curlでうまく\'
が使えないので)
-
curl -H "content-type: application/json; charset=utf-8" -X POST localhost:8080/osc/commands/execute -d '{"name": "camera.setOptions", "parameters": {"options":{"dateTimeZone":"2020:08:09 11:02:00+09:00"}}}'
スリープ無効化
- プログラムを書いているとすぐにスリープしてしまうので無効化する
- スマホアプリ(RICOH THETA)から設定できる。
- コマンドで設定する場合(sleepDelay)
-
adb shell
でTHETAのshellに入る。
-
curl -H "content-type: application/json; charset=utf-8" -X POST localhost:8080/osc/commands/execute -d '{"name": "camera.setOptions", "parameters": {"options":{"sleepDelay":65535}}}'
- 自動スリープの他に、自動電源OFFも無効化する(offDelay)
curl -H "content-type: application/json; charset=utf-8" -X POST localhost:8080/osc/commands/execute -d '{"name": "camera.setOptions", "parameters": {"options":{"offDelay":65535}}}'
USB接続時にもWi-FiをONする
USBでadbを使いながらWi-Fiも使いたいとき- Wi-Fi使用しながらのUSB使用は禁止とのことで記載削除(2022/04/07追記)
無線LAN(CLモード)設定
- THETA V/Z1をルータに簡単につなげる方法(WPS)
- コマンドで設定する場合
-
adb shell
でTHETAのshellに入る。
-
curl -H "content-type: application/json; charset=utf-8" -X POST localhost:8080/osc/commands/execute -d '{"name": "camera._setAccessPoint", "parameters": {"ssid":"Wi-FiルータのSSID","security":"WPA/WPA2 PSK","password":"Wi-Fiルータのパスワード"}}'
国内モデルはIoT技適対応のため、THETA Z1 51GBモデルおよびTHETA XでCLモードでのプラグイン起動が制限されるようになった。リコーに申請して承認されたプラグインのみCLモードでプラグインを起動できる(Android Studio等でのデバッグは可能)。
LAN内のTHETAにアクセスする
-
LANにあるTHETA Vを見つける方法
- "thetayl00123456.local." のように"theta"+シリアル番号(YL00123456)+".local."で接続できる。
- プラグインがWebUIを持っていた場合のアクセス先(ポートは8888)
基本アプリの終了(キーボード入力が必要な場合などに使う)
adb shell am force-stop com.theta360.receptor
工場出荷時に戻す(本体初期化)
有線でインターネットに接続する
- 高速転送、発熱対策、CLモードの設定回避、などの理由でUSB-OTG-Enernetアダプタ経由で有線接続する場合、使えるアダプタが限られている。どれが使えるか不明なので、調べたものを記載。
権限設定
AndroidManifest.xmlで設定する権限、例えば、"android.permission.CAMERA"
を通常のAndroidスマホであればダイアログ表示で権限を有効にすることができるが、THETAは画面を持たないため、ダイアログ表示することができない。開発者であればscrcpyなどで画面表示させて設定画面からApp permissionsを設定することで権限設定を行えるが、一般に配布した場合はどうやって権限設定させるのだろうか。THETA Plugin Storeからプラグインを配布する場合は、RICOH THETAアプリ経由でインストールされ、自動的に権限設定がされるため、ユーザーが意識して権限設定する必要はない。
Logcat
- 2020年6月17日のTHETA Z1用FW 1.50.1以降に対して
- ライブストリーミングの発熱抑制のため、初期状態でデバッグログを出さないように設定されるようになった。デバッグログを出すときには、以下コマンドを利用する。
- ログ出力
adb shell setprop persist.log.tag 0
- ログ停止
adb shell setprop persist.log.tag A
- ログ出力
- ライブストリーミングの発熱抑制のため、初期状態でデバッグログを出さないように設定されるようになった。デバッグログを出すときには、以下コマンドを利用する。
Tombstones
アプリがクラッシュするなどの問題があるとAndoidはクラッシュログを出力する。出力場所は/data/tombstones/
。ここに詳細なクラッシュ時のログが出力されているので、デバッグに役立てられる。