1

アプリのジェスチャーオーバーレイを作成したい。gesutureoverlayを他のすべてのビューの上に配置したいと思います。これまで、テキストボックスとボタンを使用してこれを実行しました。すべてのアプリの上にオーバーレイを作成する以下のコードがありますが、他のアプリやホーム画面では他に何も使用できません。このアプリは、背景ビューに焦点を合わせることができなくなります。ただし、ジェスチャオーバーレイは機能します。

少なくとも電話を正常に動作させるが、すべてのアプリの上でユーザーが行うスワイプ(ジェスチャーオーバーレイの作成)を確認するにはどうすればよいですか?これは私が今まで持っているものです

@Override
public void onCreate() {
    super.onCreate();
    WindowManager.LayoutParams params = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.MATCH_PARENT,
            WindowManager.LayoutParams.MATCH_PARENT,
            WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
          WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM | 
          WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
                   WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
            PixelFormat.TRANSLUCENT);
    WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
    GestureOverlayView g = new GestureOverlayView(getBaseContext());
    g.setGestureVisible(true);
    g.setEventsInterceptionEnabled(true);
    wm.addView(g, params);
}
4

1 に答える 1

0

まず第一に、あなたのコードが私の GestureOverlayView を一番上で動作させるのを助けてくれたことに感謝します。

私も似たようなことに取り組んでいますが、私が知る限り、少なくともそのようにはできません。これを行うには、INJECT_PERSMISSION が必要であり、この権限はシステム署名済みアプリにのみ付与されます。したがって、ROM 署名がない場合、Android API を使用してそれを行うことはできません。

もちろん、それを行う他の方法もあります。

あなたができることは、あなたの活動でイベントを取得し、あなたの活動からあなたの下の活動にそれらを「再挿入」することです。そして、これはAndroidではできないことです。

こちらこちらをご覧ください。

これらのリンクでは、Android システムにイベントを挿入する方法に関する詳細情報を見つけることができます。

于 2013-03-14T17:00:52.243 に答える