別のアプリケーション内からアプリケーションを実行することは可能ですか?私がやりたいのは、起動するアプリを選択して、このアプリのアクティビティをビュー内に表示できるアプリを作成することです。
したがって、ランドスケープモードでは、次のようになります。
この背後にある考え方は:
自分のアクティビティの隣でサードパーティのアクティビティを開始して実行できるようにしたい。また、サードパーティのアクティビティを制御するアクティビティを使用して個別のマクロを作成できるようにしたい。
基本的には次のようなものです:
では、自分のアクティビティ内から別のアクティビティを開始および制御するにはどうすればよいですか?
ルート解除:
残念ながら、インテントを介してのみ他のアプリとやり取りできるため、スマートフォンをルート化しないと、達成したいことは不可能なようです。開発者はアプリが特定のインテントにどのように反応するかを決定するため、この方法でマクロを作成することはほぼ不可能です。
root化された電話の場合:
インストールされているすべてのアプリのリストを作成することをお勧めします。
getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA);
インストールされているすべてのアプリのリストを取得します。
MotionEvent#obtain
を使用してイベントを再作成できます。今、あなたが根ざした電話を必要とする部分が来ます(許可 INJECT_EVENTS )。アプリを起動し、イベントを挿入マクロが実行されるようにします。サンプルコード:
Instrumentation m_Instrumentation = new Instrumentation();
m_Instrumentation.sendPointerSync(motionEvent);
インジェクション(キーイベントも)に関する詳細情報を見つけることができます ここ 。
アプリのコンパイルにヘルプが必要な場合は、次の2つのリンクが役立ちます: コンパイル方法Androidシステム権限を持つアプリケーション 、 Android INJECT_EVENTS権限 ==
View
でアプリケーションを起動することはできませんが、アプリ内からアプリを起動することはできます。
_ Intent i = getPackageManager().getLaunchIntentForPackage("com.package.ofapp");
startActivity(i);
_
//更新された質問を編集します:
上記のコードからアクティビティを開始した後、新しいアプリでいつでもマクロを開始/停止できる1つの方法は、画面の上部に小さなビューオーバーレイを作成することです。
このオーバーレイは、すべてのアクティビティの上にあります。
次のリンクを確認してください: システムオーバーレイウィンドウの作成(常に上部)
ビューが押されたときにマクロを開始するコードを記述し、ボタンを1回押してユーザーがもう一度押すと、マクロを停止できます。これはonTouchEvent()
メソッドにあります。
はい、フローティングアプリという名前のアプリがそれを行うので可能だと思います(ルートなし)
一部のadbコマンドのみを使用
https://play.google.com/store/apps/details?id=com.lwi.Android.flapps