Android takePersistableUriPermission no compila

Estoy utilizando el proveedor de contenido de KITKAT en mi aplicación. Después de conseguir el uri de una imagen seleccionada la almaceno en una base de datos para utilizarla otra vez más adelante. El problema es que después de reiniciar el teléfono recibí una excepción de permiso mientras usaba el uri almacenado.

Después de buscar intenté usar takePersistableUriPermission () Pero por alguna razón no compila (yo uso androidstudio).

El error es: Debe ser uno o más de IntentFLAG_GRANT_READ_URI_PERMISSION o Intent.FLAG_GRANT_WRITE_URI_PERMISSION. Se produce en el segundo argumento del método takePersistableUriPermission (el indicador)

Aquí está el código:

Intent intent; if (Build.VERSION.SDK_INT < 19){ intent = new Intent(); intent.setAction(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); startActivityForResult(intent, ANDROID_LESS_19); } else { intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("image/*"); startActivityForResult(intent, ANDROID_MORE_19); }` case ANDROID_MORE_19: if(resultCode == RESULT_OK){ Uri selectedImage = data.getData(); mImage = selectedImage.toString(); String[] filePathColumn = {MediaStore.Images.Media.DATA}; // this part means to keep permanent permissions, so no exception after rebooting the device final int takeFlags = data.getFlags() & (Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); getContentResolver().takePersistableUriPermission(selectedImage, takeFlags); grantUriPermission("com.main.bonappetit", selectedImage, Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION); Cursor cursor = getContentResolver().query( selectedImage, filePathColumn, null, null, null); cursor.moveToFirst(); int columnIndex = cursor.getColumnIndex(filePathColumn[0]); String filePath = cursor.getString(columnIndex); cursor.close(); 

Alguien sabe lo que está mal aquí?

En Android Studio, tuve que descomponer la línea para poder compilar:

 int takeFlags = data.getFlags(); takeFlags &= (Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); 
  • Cómo agregar un tarro en bibliotecas externas en el estudio android
  • ¿Es posible descargar un perfil de hardware del dispositivo para crear un AVD equivalente?
  • Prevenga Android Studio / Intellij Idea del proyecto de construcción en el inicio
  • ¿Por qué Android Studio no se carga después de una instalación correcta?
  • ¿Cómo añadir Google Play Services a un proyecto Android Studio que no esté en niveles?
  • ¿Cómo puedo personalizar el código que se genera cuando uso "Surround with try / catch"?
  • IntelliJ y Android Dependencias de Gradle - no puede encontrar el módulo
  • ¿Qué significa "Error " en Android Studio?
  • El recurso @style de Android no se ha resuelto
  • Cómo cambiar el nombre de un proyecto en Android Studio
  • Android: consumo de memoria constante / dumpGfxInfo ()
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.