Android端末に接続しているBluetoothマウスの移動量をアプリで取得する方法
Android端末はマウスを繋ぐと画面にカーソルが出てきて操作できるようになると思います。
私はAndroid端末にBluetoothマウスをペアリングし接続して使っているのですが、このマウスの移動量をAndroidアプリ上で取得したいと考えています。
普通ならMotionEventのhoverで取得できるのですが、カーソルが画面より外に出ようとした場合、勝手に座標が画面内に移動させられるのでgetXなどをしても座標が変わらないままだと思います。それで困っています。
PCで取得するときは愚直にカーソルを画面の中心に戻し、マウスを動かした後の座標と中心との差を毎フレーム取得していました。
ですが少し調べた結果、AndroidではRoot化でもしないとセキュリティの都合上マウスカーソル自体を動かすのは難しそうということがわかりました。
Bluetoothで取得している移動量情報などをアプリ側で取得できるのであれば最高なのですがそのような方法は存在するのでしょうか。
現在はやむを得ず、PCで移動量を取得してUDPでスマホに送っていますが、最大で数秒程度の遅延があります。
マウスを改造して移動量取得をしようともしたのですが、とても小さいBluetoothマウスを使っているのでハンダ付け出来そうにありません。
NDKでAMOTION_getRawX()したのですが,画面の座標を返すだけでした...
なので、どうにか移動量をアプリで直接取得したいです。どうか力を貸してください。よろしくお願いします。