Escribir en la tarjeta SD
Estoy escribiendo algunos archivos a la tarjeta SD. Mi versión de Android es 2.1. No estoy estableciendo ningún permiso en el archivo de manifiesto, pero me permite escribir en la tarjeta sd.
Por favor, hágamelo saber por qué este comportamiento. Sólo WRITE_EXTERNAL_STORAGE en los controles de manifiesto escribir en la tarjeta SD o cualquier otra configuración que tengo que hacer.
- ¿Cómo puede obtener el número de versión de manifiesto de las variables XML de la aplicación (disposición)?
- android fondo blanco sin gradiente
- Cambiar programaticamente Manifest - Permisos personalizados de Android
- Acerca de la pantalla completa y sin barra de título de manifiesto
- No se encontró identificador de recurso para el atributo 'hardwareAccelerated' cuando se construyó con apache ant
Gracias Gururaja BO
- Si hay una manera de comprobar la compatibilidad del dispositivo en google play sin cargarlo
- Detectar el android de mi aplicación: versionCode en tiempo de ejecución
- Extensión de archivos múltiples / filtros de intención de tipo mimetype con una actividad
- NullPointerException en mapFragment.getMapAsync
- ¿Cómo aplicar la acción de toque de notificación a una actividad específica en android?
- No se ha encontrado ninguna actividad del Lanzador, el lanzamiento solo sincronizará el paquete de aplicaciones en el dispositivo
- Declaración de actividad en AndroidManifest.xml
- Android - ¿Cómo activar un Broadcast Receiver para llamar a su método onReceive ()?
¿Está compilando con API de nivel 3 o menos? Ese permiso se agregó en el nivel 4 de API (Android 1.6), por lo que todas las aplicaciones compiladas con el nivel 3 de la API (para la compatibilidad con los teléfonos que siguen ejecutando 1.5) tendrán ese permiso automáticamente.
He creado un método de los utils para comprobar una tarjeta del SD está disponible en el dispositivo o no, y conseguir la trayectoria de la tarjeta del SD en el dispositivo si está disponible.
Usted puede copiar 2 métodos abajo en la clase de su proyecto que usted necesita. Cree la carpeta de su proyecto en la ruta de acceso devuelta y escriba datos en ella. Eso es todo.
public String isRemovableSDCardAvailable() { final String FLAG = "mnt"; final String SECONDARY_STORAGE = System.getenv("SECONDARY_STORAGE"); final String EXTERNAL_STORAGE_DOCOMO = System.getenv("EXTERNAL_STORAGE_DOCOMO"); final String EXTERNAL_SDCARD_STORAGE = System.getenv("EXTERNAL_SDCARD_STORAGE"); final String EXTERNAL_SD_STORAGE = System.getenv("EXTERNAL_SD_STORAGE"); final String EXTERNAL_STORAGE = System.getenv("EXTERNAL_STORAGE"); Map<Integer, String> listEnvironmentVariableStoreSDCardRootDirectory = new HashMap<Integer, String>(); listEnvironmentVariableStoreSDCardRootDirectory.put(0, SECONDARY_STORAGE); listEnvironmentVariableStoreSDCardRootDirectory.put(1, EXTERNAL_STORAGE_DOCOMO); listEnvironmentVariableStoreSDCardRootDirectory.put(2, EXTERNAL_SDCARD_STORAGE); listEnvironmentVariableStoreSDCardRootDirectory.put(3, EXTERNAL_SD_STORAGE); listEnvironmentVariableStoreSDCardRootDirectory.put(4, EXTERNAL_STORAGE); File externalStorageList[] = null; if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) { externalStorageList = getContext().getExternalFilesDirs(null); } String directory = null; int size = listEnvironmentVariableStoreSDCardRootDirectory.size(); for (int i = 0; i < size; i++) { if (externalStorageList != null && externalStorageList.length > 1 && externalStorageList[1] != null) directory = externalStorageList[1].getAbsolutePath(); else directory = listEnvironmentVariableStoreSDCardRootDirectory.get(i); directory = canCreateFile(directory); if (directory != null && directory.length() != 0) { if (i == size - 1) { if (directory.contains(FLAG)) { Log.e(getClass().getSimpleName(), "SD Card's directory: " + directory); return directory; } else { return null; } } Log.e(getClass().getSimpleName(), "SD Card's directory: " + directory); return directory; } } return null; } /** * Check if can create file on given directory. Use this enclose with method * {@link BeginScreenFragement#isRemovableSDCardAvailable()} to check sd * card is available on device or not. * * @param directory * @return */ public String canCreateFile(String directory) { final String FILE_DIR = directory + File.separator + "hoang.txt"; File tempFlie = null; try { tempFlie = new File(FILE_DIR); FileOutputStream fos = new FileOutputStream(tempFlie); fos.write(new byte[1024]); fos.flush(); fos.close(); Log.e(getClass().getSimpleName(), "Can write file on this directory: " + FILE_DIR); } catch (Exception e) { Log.e(getClass().getSimpleName(), "Write file error: " + e.getMessage()); return null; } finally { if (tempFlie != null && tempFlie.exists() && tempFlie.isFile()) { // tempFlie.delete(); tempFlie = null; } } return directory; }
- Cómo deshabilitar la detección de códigos de barras múltiples android Vision API
- VM Aborting: Señal fatal 6 (SIGABRT) en 0x00001247 (código = -6)