Ruta a un archivo usando openFileOutput

Estoy intentando copiar un archivo a un dispositivo Android usando Wifi. Por lo que no puedo decir, la creación del archivo funciona, pero no puedo encontrarlo en ninguna parte ...

Intenté usar el DDMS en Eclipse, pero no hay nada en la carpeta de datos ... para lo que leí sobre otros temas, el archivo debería estar ubicado en la carpeta de datos de la aplicación ... pero no hay ninguna carpeta en ninguna parte ... .

Este es el codigo

package com.ejemplo.cliente;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;


import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;

 public class ClienteSocket extends Activity {

 Socket socket;
 String IP = "192.168.1.101";
 Integer Puerto = 4444;
 TextView Mensaje;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Mensaje = (TextView)findViewById(R.id.Mensaje);

    try {
         socket = new Socket(IP,Puerto);
         Mensaje.setText("Conectado");
         InputStream input = socket.getInputStream();
         BufferedReader inReader = new BufferedReader(new                  InputStreamReader(socket.getInputStream()));
        BufferedWriter outReader = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
        String filename = inReader.readLine();

      if ( !filename.equals("") ){

          outReader.write("READY\n");
          outReader.flush();
          Mensaje.setText("Request Acepted");

                FileOutputStream wr = openFileOutput(filename,MODE_WORLD_READABLE);
                OutputStreamWriter osw = new OutputStreamWriter(wr); 


          byte[] buffer = new byte[socket.getReceiveBufferSize()];

          int bytesReceived = 0;

          while((bytesReceived = input.read(buffer))>0)
          {

             osw.write(bytesReceived);
             Toast.makeText(this, "Transfering", Toast.LENGTH_SHORT).show();
          }

          osw.flush();
          osw.close();
          Mensaje.setText("File Received");
      }

    } catch (UnknownHostException e) {
      Mensaje.setText("error 1" + e.getMessage());
    } catch (IOException e) {
      Mensaje.setText("error 2" + e.getMessage());
   }

   }
}

preguntado el 08 de enero de 11 a las 20:01

2 Respuestas

Si realmente está funcionando, el archivo estará en /data/data/your.package.name/. Solo podrá acceder a esa carpeta en un emulador a menos que su teléfono esté rooteado.

Respondido el 08 de enero de 11 a las 23:01

¿y está ahí de todos modos para copiar el archivo a una carpeta más "pública"? para que otras aplicaciones puedan acceder a ella ... por ejemplo, si copio una imagen, quiero que la galería la muestre ... lo mismo con un MP3 ... Diego Ulloa

Para las imágenes, hay un proveedor de contenido en el que puede incluirlo y que está integrado en Android. Si desea que sea accesible para otras aplicaciones, debe escribir su propio proveedor de contenido o ponerlo en la tarjeta SD. Falmarri

Si desea ponerlo en un mundo accesible (permitiendo que cualquiera pueda leerlo o escribirlo), colóquelo en un almacenamiento externo: developer.android.com/reference/android/os/… - hackbod

¿Alguien puede ayudarme con el proveedor de contenido para las IMÁGENES o darme un enlace a un ejemplo para copiar un archivo y ponerlo a disposición de otras aplicaciones, utilizando proveedores de contenido? - Diego Ulloa

si desea guardarlo en el almacenamiento externo (para usuarios accesibles), use este Archivo f = nuevo Archivo (Environment.getExternalStorageDirectory (), "Carpeta / nombre.ending"); para crear el archivo a copiar, también use esa ruta. Si no desea que la imagen aparezca en la Galería del teléfono, agregue un archivo llamado ".nomedia" al mismo directorio que la imagen.

Respondido 15 Abr '14, 21:04

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.