android - samsung - como pasar las fotos ala tarjeta de memoria
¿Cómo redirigir mi salida de registro de Logcat a la tarjeta SD en un dispositivo Android? (6)
Estoy intentando redirigir el registro de mi aplicación al archivo de la tarjeta SD. Pero no lo hice. Estoy intentando algo como esto.
String cmd= "logcat -v time ActivityManager:W myapp:D *:* >/""+file.getAbsolutePath()+"/"";
Runtime.getRuntime().exec(cmd);
Probé la opción -f también, pero tampoco funciona.
Esta es mi versión trabajada:
try {
File filename = new File(Environment.getExternalStorageDirectory()+"/logfile.log");
filename.createNewFile();
String cmd = "logcat -d -f "+filename.getAbsolutePath();
Runtime.getRuntime().exec(cmd);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
encuentre su archivo de registro /sdcard/logfile.log
Intenta usar un espacio después de cada elemento en la cadena. De lo contrario, considerará como un solo comando de línea sin espacios y no hará nada.
use logcat -f <filename>
para logcat -f <filename>
en un archivo en el sistema de archivos.
Asegúrese de que el nombre de archivo que está utilizando esté en la tarjeta SD, es decir, comience con /sdcard/...
Además, para pasar argumentos al programa logcat
, debe pasar el método exec
una matriz de cadenas (y no una cadena):
String[] cmd = new String[] { "logcat", "-f", "/sdcard/myfilename", "-v", "time", "ActivityManager:W", "myapp:D" };
Finalmente, si todo lo demás falla, use la ruta completa de logcat: /system/bin/logcat
lugar de solo logcat
.
Si obtiene un archivo de registro vacío, intente cambiar la extensión del archivo de .log
a .txt
.
public static void saveLogInSDCard(Context context){
String filename = Environment.getExternalStorageDirectory() + File.separator + "project_app.log";
String command = "logcat -d *:V";
try{
Process process = Runtime.getRuntime().exec(command);
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = null;
try{
File file = new File(filename);
file.createNewFile();
FileWriter writer = new FileWriter(file);
while((line = in.readLine()) != null){
writer.write(line + "/n");
}
writer.flush();
writer.close();
}
catch(IOException e){
e.printStackTrace();
}
}
catch(IOException e){
e.printStackTrace();
}
}
/**
* Launches a logcat process.
* To stop the logcat preserve the use:
* process.destroy();
* in the onBackPressed()
*
* @param filename destination of logcat output
* @return Process logcaat is running on
*/
public Process launchLogcat(String filename) {
Process process = null;
String cmd = "logcat -f " + filename + "/n";
try {
process = Runtime.getRuntime().exec(cmd);
} catch (IOException e) {
process = null;
}
return process;
}