Cómo dibujar sobre aplicaciones que atraen a más de otras aplicaciones? - ¿Estableciendo prioridades?

ángel:

Gracias por tu tiempo.

Estoy haciendo esta aplicación que muestra un icono sobre la pantalla de inicio y otras aplicaciones (como mensajero fb) (ver img1) y cuando se presiona, el icono muestra una nueva actividad que tiene las opciones (ver img3). Pero tiene este problema:

  • El icono se muestra detrás de mi nueva actividad de superposición (ver img3)
  • fb messegner siempre aparece sobre mi aplicación (ver img2)

Así que estaba pensando que tal vez hay una manera de establecer las prioritys pantallas superpuestas?

  1. ¿Cómo puedo mostrar mi aplicación sobre otras aplicaciones que también atraen a más de otras aplicaciones?

  2. ¿Cómo puedo obtener el permiso del sistema que aparezca sobre la aplicación del sistema?

Por favor ayuda.

Img1 - Mi aplicación

Img2 - Mi aplicación vs Fb mssgr vs Sistema de aplicación

Img3 - creo una nueva superposición de ventanas, pero yo quiero que mi primer icono appe

Los permisos en mi manifiesta:

<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" />

El Servicio del icono:

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);

    ....

    }

}

El servicio con la pantalla gris de superposición y el icono blanco en la parte inferior:

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);

    ...
    }
}
ángel:

Tengo encontrar una manera de mostrar el icono sobre las otras aplicaciones, se agregó differentes Disposición params para cada uno:

Para la pantalla que desea muestra en la parte superior:

LayoutParams.type = WindowManager.LayoutParams.TYPE_PRIORITY_PHONE;

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=231118&siteId=1
Recomendado
Clasificación