Android M solicitud de permiso no actividad

Mi widget hace llamadas para proteger los permisos fuera de un ámbito de Activity . ¿Es posible solicitar permisos para Android M fuera de una Activity ?

Si desea solicitar el permiso de fuera de la actividad, puede crear una clase diferente y extender la clase de Actividad. Utilice constructor para obtener y establecer Context para la clase.

 public class Permissions extends Activity { private static final int MY_PERMISSIONS_WRITE_EXTERNAL_STORAGE = 1; private Context context; public Permissions(Context context) { this.context = context; } public void checkWriteExternalStoragePermission() { final int MY_PERMISSIONS_REQUEST_PHONE_CALL = 1; ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE); if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, MY_PERMISSIONS_WRITE_EXTERNAL_STORAGE); } } @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case MY_PERMISSIONS_WRITE_EXTERNAL_STORAGE: { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { Toast.makeText(context, "Permission Granted", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(context, "Permission Denied", Toast.LENGTH_SHORT).show(); } return; } // other 'case' lines to check for other // permissions this app might request } } } 

Ahora, cree el objeto crear y pase el contexto al constructor dondequiera que usted necesite pedir permisos.

 Permissions permissions = new Permissions(SplashScreen.this); permissions.checkWriteExternalStoragePermission(); 

Creo que es posible solicitar un permiso fuera de una actividad, siempre y cuando utilice el método

ActivityCompat.requestPermissions (Activity activity, String [] permisos, int requestCode)

Desde la biblioteca de soporte y pasar la actividad como un parámetro del método.

Por ejemplo:

 ActivityCompat.requestPermissions(targetActivity, new String[] {Manifest.permission.CAMERA}, PERMISSION_REQUEST_CODE); 

Donde targetActivity es la actividad que debe implementar el método:

OnRequestPermissionsResult (int requestCode, String [] permisos, int [] grantResults)

Ése es el método que manejará el resultado de la petición del permiso.

No, no es posible. Lo que puedes hacer es enviar una notificación donde el usuario puede tocar y luego usar una actividad para solicitar / administrar el permiso (quizás con el tema de diálogo).

Sólo puede solicitar permiso de Actividad o de fragmento.

Determina un punto de tu Actividad o Fragmento en el que pienses que App necesitará un permiso, luego llama al método requestPermission. La notificación de envío no funcionará porque quieres procesar el código hasta que obtengas los permisos solicitados y, a continuación, reanuda tu funcionalidad desde el método onRequestPermissionResult ().

Es posible llamar a requestPermissions () desde fuera de tu actividad, pero en tu clase deberías tener el contexto de esa actividad.

 ActivityCompat.requestPermissions((Activity)context, new String[]{permission.READ_PHONE_STATE}, REQUEST_CODE); 

Para trabajar, debe implementar el siguiente método en su actividad

 onRequestPermissionsResult (int requestCode, String[] permissions, int[] grantResults) 

Para que este método de anulación se ejecute cuando el usuario pulse en el botón de permitir o denegar en el pop-up

  • ActivityCompat.requestPermissions no funciona
  • Error de permiso de almacenamiento en Marshmallow
  • Android 6.0 RuntimeException: No se puede conectar al servicio de cámara
  • Android M está escuchando android.os.action.DEVICE_IDLE_MODE_CHANGED
  • No se puede cambiar al modo Doze
  • El permiso de manifiesto no funciona en Android 6
  • Wakelock y modo doze
  • Ampliación de Byte a Int (bicho Marshmallow)
  • DrawerLayout deja de funcionar correctamente después de la actualización a Android 6.0.1
  • Prueba de espera y modo de espera
  • Una aplicación de Android recuerda sus datos después de desinstalar y reinstalar
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.