Android L + Nexus 5: java.io.FileNotFoundException: open failed: EACCES (permiso denegado)
En primer lugar, voy a decir que he leído muchos otros puestos que coinciden con esta pregunta y ninguno de ellos ha funcionado para mí.
Estoy probando mi aplicación en mi dispositivo, un Nexus 5 con Android L. No está arraigada. Este mismo código funciona en un Android más antiguo, ejecutando la API 19.
- AOSP Construir no arrancar en hammerhead
- Nexus 5 va a modo de espera hace ciclo de vida de actividad buggy
- Chrome devTools ya no ve dispositivos USB para depurar
- Fallo seguido de DELETE_FAILED_INTERNAL_ERROR
- Android PopupWindow se oculta detrás de los botones de navegación en Nexus 5
Estoy intentando tomar una captura de pantalla y compartirla, usando este código:
View screen = getWindow().getDecorView().getRootView(); screen.setDrawingCacheEnabled(true); Bitmap bitmap = screen.getDrawingCache(); String filename = getScreenshotName(); String filePath = Environment.getExternalStorageDirectory().getPath() + File.separator + filename; File imageFile = new File(filePath); try { ByteArrayOutputStream bos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, bos); byte[] bitmapData = bos.toByteArray(); FileOutputStream fos = new FileOutputStream(imageFile); fos.write(bitmapData); fos.flush(); fos.close(); } catch (FileNotFoundException e) { Log.e("GREC", e.getMessage(), e); } catch (IOException e) { Log.e("GREC", e.getMessage(), e); } // share Intent share = new Intent(Intent.ACTION_SEND); share.setType("image/png"); share.putExtra(Intent.EXTRA_STREAM, Uri.parse(filePath)); startActivity(Intent.createChooser(share, "Share Image"));
Tengo estos permisos en AndroidManifest.xml
:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Y me sale este error:
java.io.FileNotFoundException: /storage/emulated/0/2014-09-14.png: open failed: EACCES (Permission denied)
En esta línea:
FileOutputStream fos = new FileOutputStream(imageFile);
También he intentado otras 10 formas de obtener un filePath, y ahora sospecho que este es un dispositivo / Android L problema.
¿Alguna idea de lo que está pasando?
- Flash Torch en Google Nexus 5
- Nexus 5 no se mostrará en Eclipse
- Configuración de AVD a las mismas especificaciones que el dispositivo físico
- ImageView no se muestra en Nexus 5 (Android 6.0)
- MediaPlayer.prepare () lanza IllegalStateException en Android L
- ¿Preferencias compartidas? Javax.crypto.BadPaddingException: bloque de pad corrompido sólo en algunos dispositivos
- Problemas de conexión de Android 6 Nexus 5 USB
- "FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS" afecta a getRootView (). GetHeight ()
- Formatear texto para sugerencias de búsqueda personalizadas proporcionadas en un cursor de un proveedor de contenido
- Android: ¿Cómo detectar la aplicación eliminada de la lista de aplicaciones recientes?