タッチパネルのガラスが割れて操作できなくなったNexus 7(2012 Wi-Fi)。現在部品手配中だが到着まで約2週間くらいは掛かる。
交換までの間端末を操作する手段であるOTGケーブルとマウスをわざわざ引っ張りだすのも面倒なので、ネットワーク経由のADBとAndroid Screen Monitor(ASM)を利用して端末の画面を操作してみた。まさに遠隔操作ういr(ry この後触れるがフレームレートはお察し
端末側の準備・ADB接続
PC側にAndroid SDKとJavaがインストールしてあり、端末側のUSBデバッグが有効な状態であることを前提とする。また以下はPC側がUbuntu(14.04)、端末側はAndroid 5.1.1(カスタムROM:CyanogenMod 12.1)での例。端末のAndroidのバージョンやROMによってはできないかもしれない。
Nexus 7に入れてあるカスタムROM CyanogenMod 12.1(Android 5.1.1)には端末側でネットワークADBサーバーを起動する機能があるのでそれを利用する。
端末にOTGケーブルでマウスを接続、設定→開発者向けオプションからネットワーク経由のADBを有効化。再起動すると無効になるので注意。
項目がないROMの場合(純正ROM含む)はUSBケーブルで端末を接続し、以下のコマンドを叩けばいいかも(完了したらUSBケーブルは外してもOK?)。
$ /path/to/android-sdk-linux/platform-tools/adb tcpip 5555
そのあとPC側から、端末のIPアドレス(ここでは192.168.11.5とする):ポート(5555)を入力して端末に接続する。2回目以降はマウスを接続せずに直接これを叩けばいい(端末を再起動した場合を除く)。
$ /path/to/android-sdk-linux/platform-tools/adb connect 192.168.11.5:5555 connected to 192.168.11.5:5555
初回接続の場合は端末側に確認画面が表示されるので承認しておく。承認したらマウスを外しても大丈夫。
ASMで操作
Android Screen Monitorをダウンロード&展開し、asm.jarにAndroid SDKへのパスを渡して起動する。
$ java -jar asm.jar /path/to/android-sdk-linux
起動するとデバイス一覧に先ほどconnectしたデバイス(192.168.11.5:5555)が出てくるので選択。出てこないときは切断などされていないかどうか確認すること。
しばらくすると画面が表示されマウスで操作できるようになる。画面がでかすぎる!という場合は画面を右クリック→Zoomから縮小すればOK。
なお、無線LANでの通信故(USB2.0でもそうだが)、かなりフレームレートが悪い。(大事な事なので文字を大きくしました)
端末や無線LANの環境にもよるが、操作してからPC側の画面に反映されるまで約5〜10秒以上かかる。
PC側の操作はすぐに反応するので、端末側の画面を見ながら操作するというのもありか(タッチ場所の確認等は必要だけど)。