Tengo Android Marshmallow en un Nexus 6. Estoy intentando solucionar el siguiente problema:
Si un usuario intenta otorgar permiso mientras se muestra una notificación, se muestra un mensaje de "Superposición de pantalla detectada" y el cuadro de diálogo Solicitar permiso desaparece; por supuesto, la aplicación no obtiene el permiso solicitado. (Ver captura de pantalla)
Traté de solucionar el problema agregando el permiso "DIBUJAR OTRAS APLICACIONES" - android.permission.SYSTEM_ALERT_WINDOW al manifiesto pero sin suerte.
PD: Estoy seguro de que el problema es causado por la notificación. No tengo ninguna aplicación instalada que se superponga a otras aplicaciones, incluso desactivé todas las aplicaciones con el permiso "Dibujar sobre otras aplicaciones" en la configuración. No ayudó..
¿Alguien sabe una solución a ese problema?
fuente
Respuestas:
En la circunstancia con la que me encontré, yo mismo estaba causando el problema. Fue el resultado de usar un
Toast
para mostrar información al usuario al mismo tiempo que pedía permiso. Ambas acciones juntas causan este tipo de error.Las otras respuestas pueden resolver el problema de otra persona. Pero quería señalar que debe tener cuidado de no causar sus propios errores de superposición. Tenga cuidado de no superponer algo en la vista al mismo tiempo que pide permiso.
fuente
Toast
para depurar. Esta también puede ser la razón principal por la que la gente tiene esto.Toast to display information to the user at the same time that I was asking for permission
Me ayudó ...Desinstale la aplicación Clean Master. Lo desinstalé y problema resuelto
fuente
Facebook Messenger
necesario desinstalarlo, solo forzar la detención.Este problema aparece debido a alguna aplicación culpable como Twilight, cleaner-master, drupe, etc.
Para resolver este problema, debe deshabilitar la superposición de pantalla para esas aplicaciones culpables.
tengo moto g4 plus, y así es como resuelvo este problema
Vaya a Configuración -> Seleccionar aplicaciones ---> nuevamente seleccione el icono de configuración en Aplicaciones ---> seleccione dibujar sobre otras aplicaciones ---> y deshabilite las aplicaciones culpables que tienen problemas con otras aplicaciones.
Lo que hice fue verificar cada aplicación al deshabilitar este permiso e intentar ejecutar mi aplicación, y encontré una aplicación con esta superposición preocupante para otras aplicaciones, así que al final deshabilité solo esta aplicación.
Capturas de pantalla:
fuente
Obtuve información de múltiples respuestas aquí y en otros foros.
Consolidando cómo me deshice del problema:
Avísame si hay algún problema.
Nota: Tengo One plus One mobile.
fuente
Acabo de eliminar mi aplicación y apagar mi Nexus 6P. Después de volver a encenderla, reinstalé la aplicación y ya no obtuve los cuadros de diálogo de "superposición de pantalla" al otorgar permisos a la aplicación.
fuente
Esta ventana emergente es causada por el permiso manifest.PERMISSION.SYSTEM_ALERT_WINDOW declarado por el manifiesto.
Hay 3 categorías de permisos que el desarrollador debe conocer:
Permiso normal: no haga nada con ellos, simplemente declare en el Manifiesto
Permisos vulnerables : declare en Manifest y solicite permiso la primera vez. Se pueden cambiar a través de la configuración del sistema.
Por encima de los permisos peligrosos: SYSTEM_ALERT_WINDOW y WRITE_SETTINGS pertenecen a esta categoría. Deben concederse, pero no están visibles en la configuración del sistema. Para solicitarlo, no usa una forma estándar (int checkSelfPermission (permiso de cadena)) pero debe verificar Settings.canDrawOverlays () o Settings.System.canWrite () adecuadamente y si no lo hace obtendrá una excepción como
1-Solicite este permiso usted mismo en su código como se indica a continuación:
public class MainActivity extends AppCompatActivity { public final static int REQUEST_CODE = 10000; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (checkDrawOverlayPermission()) { Toast.makeText(this, "Permission granted", Toast.LENGTH_SHORT).show(); } } public boolean checkDrawOverlayPermission() { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { return true; } if (!Settings.canDrawOverlays(this)) { Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName())); startActivityForResult(intent, REQUEST_CODE); return false; } else { return true; } } @Override @TargetApi(Build.VERSION_CODES.M) protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_CODE) { if (Settings.canDrawOverlays(this)) { Toast.makeText(this, "Permission granted", Toast.LENGTH_SHORT).show(); } } }
fuente
Debe deshabilitar la superposición para todas las aplicaciones que ve en la lista. Solo de esta manera puede modificar las autorizaciones en la aplicación que necesita. Lo hice en modo seguro y funcionó. Al final, reinicié el teléfono y ahora funciona bien.
fuente
Actualicé mi Sony Xperia Z3 (Dual Sim) a Android 6.0.1 (Marsmallow). He tenido problemas de superposición de pantalla. Para mí no tengo Clean Master, Du Speed o Du Booster (como las soluciones que he leído).
Así que resolví el mío buscando aplicaciones de superposición de pantalla.
Una aplicación de superposición de pantalla es una aplicación que puede utilizar para acceder a otras aplicaciones en su pantalla de inicio principal sin salir de su pantalla de inicio. Entonces, para mí, la aplicación de superposición de pantalla aquí en mi situación fue OMNI SWIPE . Entonces, si enfrenta este problema, debe calmarse y verificar cuál de su aplicación se ajusta a la definición de una aplicación de superposición de pantalla.
localice la aplicación y desinstálela, luego reinicie su teléfono ..
Acabo de terminar de hacer esto y me lo estoy pasando bien con el teléfono.
La mejor de las suertes
fuente
Siempre que Android 6.x tenga errores en algunos dispositivos donde esta "alerta de superposición" se muestra sin ningún motivo (en 2 a 5% de los dispositivos según mis datos analíticos), la mejor solución es evitar todo el proceso de permisos definiendo el targetSdk a 22.
Tenga cuidado de no poder degradar el sdk de destino para una nueva versión o esto inducirá un error INSTALL_FAILED_PERMISSION_DOWNGRADE cuando el usuario actualice y requiera unisntall / install de la aplicación.
fuente
la solución es
eliminar los mensajes de Toast del método onRequestPermissionsResult
fuente
Esto sucede cuando ha otorgado permiso de superposición a aplicaciones maliciosas. Vaya a la configuración de superposición y desactive la función de superposición en todas las aplicaciones que no pertenecen a Google y estará listo para comenzar.
fuente
Tengo este problema al instalar una nueva aplicación. La forma en que solucioné este problema es habilitar manualmente los permisos para la aplicación recién instalada (antes de ejecutar la aplicación). Estoy bastante seguro de que esto es un problema con los dispositivos Android y Samsung en particular. Espero que esto ayude
fuente
Elimine las aplicaciones que tienen superposición de pantalla como seguridad CM, Clean Master, etc.
Incluso elimine y pruebe con Messenger (aplicación FB) si es necesario.
fuente