Android 6 Permisos => Crash al deshabilitar permiso y volver a la aplicación

Me gustaría usar el permiso para Android 6 en mi aplicación, pero vi un extraño evento. Tal vez usted puede ayudarme sobre eso.

Si inicia su aplicación con permisos "Peligrosos", estos permisos aparecen en los "Permisos de la aplicación" de su dispositivo Android. ¡PERFECTO!

PERO si mantiene su aplicación en segundo plano, vaya al menú "Permisos de la aplicación", deshabilite (puede habilitarlo y luego deshabilitarlo) un permiso y vuelva a su aplicación, android nunca vaya a onStart (Fragmento o actividad)? Y nunca ir allí de nuevo.

Si no toca el permiso o si habilita un permiso => ​​vaya a onStart y otros.

Eso es problemático, por ejemplo, si su aplicación utiliza oyentes, no puede reiniciarlo y puede tener un fallo …

¿Conoces el método en el que anda Android cuando inhabilitas un permiso?

He intentado onCreate onStart onResume onRestart onRestoreInstanceState onActionModeStarted onRestoreInstanceState onPostResume onContentChanged

… pero de ninguna manera …: /

Aquí está mi solución:

Yo uso algunos fragmentos en mi mainActivity.

Como sabes, la actividad se vuelve a crear cuando el usuario deshabilita un permiso => ​​pasa a través de …

Lo que hago en el onCreate (…) de mi mainActivity, quito todos los fragmentos cargados y poner mi aplicación en el mismo estado que una primera ejecución.

Me gusta esto:

// Clean fragments (only if the app is recreated (When user disable permission)) FragmentManager fragmentManager = getSupportFragmentManager(); if (fragmentManager.getBackStackEntryCount() > 0) { fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); } // Remove previous fragments (case of the app was restarted after changed permission on android 6 and higher) List<Fragment> fragmentList = fragmentManager.getFragments(); if (fragmentList != null) { for (Fragment fragment : fragmentList) { if (fragment != null) { fragmentManager.beginTransaction().remove(fragment).commit(); } } } 

Ten cuidado !!! : Tuve un accidente con la versión 23.2.0 de appcompat y las bibliotecas de diseño. ¡Este bloqueo aparece cuando se recrea la aplicación!

Consulte este enlace para obtener más información.

  • Android "No se encontró proveedor de contenido ni se revocó el permiso" con android 4
  • Android 6.0 necesita reiniciar después de conceder permiso de usuario en tiempo de ejecución
  • Obtener el permiso de Android dynamiclly
  • Captura de imagen sin permiso con Android 6.0
  • Permiso de negación: apertura del proveedor com.android.providers.contacts.ContactsProvider2 de ProcessRecord en Android Studio
  • Lo que puede causar un error socket () "Permiso denegado"?
  • Permisos de aplicaciones en Android Marshmallow en PhoneGap
  • java.lang.SecurityException: Ni el usuario 10032 ni el proceso actual tiene android.permission.MODIFY_PHONE_STATE
  • AndroidManifest.xml implícita vs permisos explícitos (usos-característica vs usos-permisos)
  • Permiso de micrófono
  • Bloqueo de superposición de pantalla Permisos de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.