他のアプリの上に描くのアプリを上に描画するには? - 優先順位の設定?

天使 :

お時間をありがとうございました。

私はこのアプリを作ってるんだことを示してホーム画面と(FBメッセンジャーのような)他のアプリ(IMG1を参照)、あなたがそれを押すと、アイコンが示すオプションがあり、新たな活動が(IMG3を参照)の上にアイコンが表示されます。しかし、このような問題があります。

  • アイコンは、私の新しいオーバーレイ活動の後ろに示されている(IMG3を参照してください)
  • FB messegnerはいつも私のアプリの上に表示されます(IMG2を参照してください)

私が考えていたので、多分画面を重ねprioritysを設定する方法はありますか?

  1. どのように私は私のアプリは他のアプリの上に描く他のアプリの上に表示することができますか?

  2. どのように私は、システムのアプリの上に表示されるシステムの許可を得ることができますか?

助けてください。

IMG1 - マイアプリ

IMG2 - システムアプリVSのFB mssgr対マイアプリ

IMG3 - 私は新しいオーバーレイウィンドウを作成しますが、私は私の最初のアイコンAPPEをしたいです

私のマニフェストに権限:

<uses-permission android:name="android.permission.ACTION_MANAGE_OVERLAY_PERMISSION" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.CALL_PHONE" />

アイコンのサービス:

public class ServicioVentanaFlotanteIcono extends Service {


    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }


    @Override
    public void onCreate() {
        super.onCreate();

        // Indica que mostrará el Layout ventana_flotante
        final LayoutInflater inflater = (LayoutInflater) getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);
        assert inflater != null;
        @SuppressLint("InflateParams") final View
                customView = inflater.inflate(R.layout.ventana_flotante_icono, null);

        // Inicializa el Windows Manager y muestra el Layout
        wm = (WindowManager) getSystemService(WINDOW_SERVICE);
        final WindowManager.LayoutParams parameters = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.TYPE_PHONE,
                WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
                PixelFormat.TRANSLUCENT);
        wm.addView(customView, parameters);

    ....

    }

}

下部にオーバーレイ灰色の画面と白のアイコンとサービス:

public class ServicioVentanaFlotanteMensajes extends Service {

@Override
public IBinder onBind(Intent intent) {
    return null;
}

public void onCreate() {
        super.onCreate();

        // Indica que mostrará el Layout ventana_flotante_mensajes
        final LayoutInflater inflater = (LayoutInflater) getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);
        customView = inflater.inflate(R.layout.ventana_flotante_mensajes, null);

        // Inicializa el Windows Manager y muestra el Layout
        wm = (WindowManager) getSystemService(WINDOW_SERVICE);
        final WindowManager.LayoutParams parameters = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.MATCH_PARENT,
                WindowManager.LayoutParams.MATCH_PARENT,
                WindowManager.LayoutParams.TYPE_PHONE,
                WindowManager.LayoutParams.FLAG_FULLSCREEN,
                PixelFormat.TRANSLUCENT);
        wm.addView(customView, parameters);

    ...
    }
}
天使 :

私はそれがそれぞれに対して貴様レイアウトのparamsを追加して、他のアプリの上にアイコンを表示する方法を見つける必要があり:

画面に、あなたは一番上のショーをしたいです:

LayoutParams.type = WindowManager.LayoutParams.TYPE_PRIORITY_PHONE;

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=231112&siteId=1