Dibujar superposición en Android (en todo el sistema)
¿Hay una manera de dibujar una ventana de superposición siempre encima de cualquier aplicación de android?
Estoy usando el puerto x86 de Android y tengo derechos del sistema.
- Cómo obtener el largo y lat valor de cuatro esquinas en el mapa en android?
- Custom OverlayItem sin dibujar
- Eliminar todas las superposiciones
- No entiende el método drawAt () para com.google.android.maps.Overlay
- Entender boundCenterBottom ()
@Edit: La vista debajo de la superposición debe recibir todos los eventos.
- Agregar Overlay a un MapView en osmdroid
- Aplicación de Android: mostrar elementos de superposición en AsyncTask
- Quiero agregar popover / overlay / hotspot en el streetview de google map en android
- Aplicación de una superposición (filtro de imagen) a un mapa de bits
- Dibujo es constantemente llamado en mi superposición de mapa de Android
- Dibuja una ruta en los mapas siguiendo la ruta de movimiento de los dedos en la pantalla del dispositivo
- ¿Hay algún límite para dibujar la ruta usando Geocoder (Android)?
- Cómo crear una superposición de información en Android
Es posible hacerlo creando un Service
que agrega la vista en el WindowManager
actual:
public class OverlayService extends Service { @Override public void onCreate() { super.onCreate(); WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); View overlay = /* create your overlay here */; WindowManager.LayoutParams params = new WindowManager.LayoutParams( WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_SYSTEM_ALERT, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, PixelFormat.TRANSLUCENT); windowManager.addView(overlay , params); } @Override public IBinder onBind(Intent intent) { return null; } }
Pero necesitas este permiso adicional:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
Y luego simplemente registre el servicio en el manifiesto:
<service android:name=".OverlayService" ></service>
y comenzarlo:
startService(new Intent(this, OverlayService.class));