私はAndroidスタジオによる仮想マウスカーソルのプログラミングを行っています。これはこのwebsiteとそのcodeの例です。オーバーレイカーソルと次のコードをホーム画面に戻しています。Androidの仮想マウスカーソルはアプリの外をクリックできません
Intent newActivity = new Intent(Intent.ACTION_MAIN);
newActivity.addCategory(Intent.CATEGORY_HOME);
newActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(newActivity);
私の問題は、ビューが私のアプリ(多分ホームスクリーンまたは他のアプリ)の外にあるときに私のカーソルにクリックアクションを適用する方法です。私はこの
Instrumentation m_Instrumentation = new Instrumentation();
m_Instrumentation.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),SystemClock.uptimeMillis(),MotionEvent.ACTION_DOWN,new_x, new_y, 0));
m_Instrumentation.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, new_x, new_y, 0));
を試してみましたが、それは別のアプリケーションに注入
を示すINJECT_EVENTS許可が必要です。
次に、AndroidManifest.xmlに <uses-permission android:name="android.permission.INJECT_EVENTS"/>
を追加しました。 「システムアプリケーションにのみ許可が与えられています」というエラーがあります。そのため、仮想アプリを使用して仮想クリックを実行することはできません。私が検査システムを閉めれば、私のアプリにはまだ動作しません。 (他のアプリを開くには、ホーム画面で使用することはできません。)
dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis() + 100, MotionEvent.ACTION_DOWN, new_x, new_y, 0));
dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis() + 100, MotionEvent.ACTION_UP, new_x, new_y, 0));
感謝をご返信するため
はその後、私はハンドラでdispatchTouchEventを試みたが、それだけのアプリ自分で動作します。
私のシミュレートされたモバイルデバイスはAndroid 4.4.2です。
コンパイルSDKのバージョン:アンドロイド6.0
ビルド・ツールのバージョン:24.0.3
感謝を使用してクリック数を送信するために管理。電話をかけた場合、プロジェクトでINJECT_EVENTSの許可をどのように開くことができますか? –
マニフェストに権限を追加してから、システムのアプリケーションディレクトリ(バージョンによっては、/ system/apps、/ system/priv-apps)に自分自身をインストールする必要があります。そこにインストールされているアプリは、システム権限を要求できます。だから、それはプレイストアのアプリでは動作しませんが、それは個人的なアプリのために大丈夫になります。 –
システムをルートするために[this](https://kingroot.net/#)をインストールしてから、AndroidManifestにINJECT_EVENTS権限を追加しました。ただし、別のアプリケーションへのインジェクションには、デバッグウィンドウにINJECT_EVENTS権限**が必要です。 –