Android サービスから getevent を実行し、adb を実行して開発マシンのコマンド プロンプトから getevent を呼び出した場合と同様の出力を取得することはできますか? 次のようなものを試すと:
ProcessBuilder builder = new ProcessBuilder()
.command("getevent")
.redirectErrorStream(true)
.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(builder.getInputStream()));
...
各デバイスで得られる出力は次のようになります。
/dev/input/event[n] を開けませんでした。権限が拒否されました
Android のセキュリティ保護のために、このような低レベルの情報にアクセスすることはできないのでしょうか? 「ルート化された」デバイスで可能でしょうか?
これを行う理由: ユーザビリティ テストの目的で、Android デバイスでのユーザーのアクション (タッチおよびジェスチャ イベント) を記録したいと考えています。アクセシビリティ サービスは有効な方法のようですが、情報は十分に詳細ではありません。たとえば、スワイプジェスチャの場合、ユーザーがスワイプした場所の画面座標を取得できません。タッチスクリーンから低レベルの入力を取得することで、より詳細な情報を取得できるのではないかと考えていました。多分これを行うためのより良い方法がありますか?(私は Android の世界では初心者です。この種のことは、Windows では簡単です。)