requestpermissions - Mensaje de Android "Screen Overlay Detected" si el usuario intenta otorgar un permiso cuando se muestra una notificación
request permission android (13)
Tengo Android Marshmallow en un Nexus 6. Estoy tratando de solucionar el siguiente problema:
Si un usuario intenta otorgar permiso mientras se muestra una notificación, se muestra un mensaje "Se detectó superposición de pantalla" y desaparece el cuadro de diálogo Solicitar permiso; por supuesto, la aplicación no obtiene el permiso solicitado. (Ver captura de pantalla)
Traté de solucionar el problema agregando el permiso "SORTEO SOBRE 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 sobre otras aplicaciones, incluso apagué todas las aplicaciones con el permiso "Dibujar sobre otras aplicaciones" en la configuración. No ayudó..
Alguien sabe una solución a ese problema?
-
Elimine las aplicaciones que tienen superposición de pantalla como seguridad CM, Clean Master, etc.
-
Incluso elimine e intente con Messenger (aplicación FB) si es necesario.
Acabo de eliminar mi aplicación y apagué mi Nexus 6P. Después de volver a encenderlo, reinstalé la aplicación y ya no obtuve los cuadros de diálogo de "superposición de pantalla" al otorgar los permisos de la aplicación.
Actualicé mi Sony Xperia Z3 (Dual Sim) a Android 6.0.1 (Marsmallow). He estado teniendo 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í la mía buscando cualquier aplicación de superposición de pantalla.
Una aplicación de superposición de pantalla, es una aplicación que puede usar para acceder a otras aplicaciones en su pantalla de inicio principal sin salir de su pantalla de inicio. Entonces, para mí, la aplicación Screen Overlay aquí en mi situación era OMNI SWIPE . Entonces, si enfrenta este problema, necesita calmarse y verificar cuál de sus aplicaciones 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 lo estoy pasando bien con el teléfono
La mejor de las suertes
Debe deshabilitar la superposición para todas las aplicaciones que ve en la lista. Solo así 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.
Desinstala la aplicación Clean Master. Lo desinstalé y solucioné el problema
En las circunstancias 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 le pedía permiso.
Ambas acciones juntas causan este tipo de error.
Las otras respuestas podrían resolver el problema de otra persona. Pero quería señalar que debe tener cuidado de causar sus propios errores de superposición. Tenga cuidado de superponer algo en la vista mientras solicita permiso simultáneamente.
Esta ventana emergente está causada por el permiso manifest.PERMISSION.SYSTEM_ALERT_WINDOW declarado por el manifiesto.
Hay 3 categorías de permisos que el desarrollador debe tener en cuenta:
Permiso normal: no hagas nada con ellos, solo declara en el Manifiesto
Permisos vulnerables : declare en el Manifiesto y solicite permiso por 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 otorgarse, pero no son visibles en la configuración del sistema. Para solicitarlo, no utiliza una forma estándar (int checkSelfPermission (permiso de cadena)) pero debe verificar Settings.canDrawOverlays () o Settings.System.canWrite () de manera adecuada y, si no lo hace, obtendrá una excepción como
No se puede agregar la ventana android.view.ViewRootImpl$W@1de28ad: permiso denegado para este tipo de ventana
1-Solicite este permiso usted mismo en su código tal 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();
}
}
}
Este problema aparece debido a alguna aplicación culpable como Twilight, limpiador-maestro, drupa, 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 desactive las aplicaciones culpables que tengan problemas para 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 de esta superposición problemática para otras aplicaciones, por lo que al final desactivé solo esta aplicación.
Capturas de pantalla:
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.
Siempre que Android 6.x tenga errores en algunos dispositivos donde se muestra esta "alerta de superposición" sin ningún motivo (en 2 a 5% de los dispositivos de acuerdo con mis datos analíticos), la mejor solución es evitar todo el proceso de permisos mediante definiendo el targetSdk a 22.
Tenga cuidado de no poder degradar el SDK de destino para una nueva versión o esto provocará un error INSTALL_FAILED_PERMISSION_DOWNGRADE cuando el usuario actualice requiriendo la desinstalación / instalación de la aplicación.
Tengo este problema al instalar una nueva aplicación. La forma de solucionar 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 este es un problema con los dispositivos Android y Samsung en particular. Espero que esto ayude
la solución es
eliminar mensajes Toast del método onRequestPermissionsResult
Obtuve información de múltiples respuestas aquí y en otros foros.
Consolidando cómo me libré del problema:
- Vaya a Configuración> Aplicaciones> (su aplicación está teniendo problemas)
- Presione el botón de Encendido hasta la ventana para Apagar, reiniciar, aparece el modo avión
- Opción de apagado
- Seleccione reiniciar en modo seguro
- Vaya a configuración> aplicaciones> (su aplicación está teniendo problemas)
- Seleccione los permisos que desee
- Después de la actualización de Android M, pueden surgir problemas en aplicaciones como Messenger, Whatsapp, Prisma, etc.
Avísame si hay algún problema.
Nota: Tengo un móvil One plus One.