Pregunta

Quiero hacer la aplicación donde pueda obtener todas las imágenes sin importar si está en el teléfono o en la memoria externa.Quiero importar todas las imágenes en mi solicitud.¿Cómo puede ser posible?Llegué a saber que es posible a través de la conexión de archivos.Pero no consiguiendo idea exacta.

¿Fue útil?

Solución

  1. Get all the file system roots using FileSystemRegistry.listRoots()
  2. Open connection to each root in turn using FileConnection fconn = (FileConnection)Connector.open(root)
  3. List the folder using fconn.list().
  4. For each entry in the list, if it ends with an image extension (file.getName().endsWith(".png") etc), then it's an image.
  5. If the entry is a folder (file.isDirectory() returns true) then use fconn.setFileConnection(folder) to traverse into that directory/
  6. Do the same recursively for all folders in all roots.

Otros consejos

Here is a code snippet I once used for my application. It more or less does the same in funkybros steps.

 protected void showFiles() {
        if (path == null) {
            Enumeration e = FileSystemRegistry.listRoots();
            path = DATAHEAD; //DATAHEAD = file:///
            setTitle(path);
            while (e.hasMoreElements()) {
                String root = (String) e.nextElement();
                append(root, null);
            }
            myForm.getDisplay().setCurrent(this);
        } else {
                        //this if-else just sets the title of the Listing Form
                        if (selectedItem != null) {
                            setTitle(path + selectedItem);
                        }
                        else {
                            setTitle(path);
                        }
            try {
// works when users opens a directory, creates a connection to that directory
                if (selectedItem != null) {
                    fileConncetion = (FileConnection) Connector.open(path + selectedItem, Connector.READ);
                } else // works when presses 'Back' to go one level above/up
                {
                    fileConncetion = (FileConnection) Connector.open(path, Connector.READ);
                }
// Check if the selected item is a directory
                if (fileConncetion.isDirectory()) {
                    if (selectedItem != null) {
                        path = path + selectedItem;
                        selectedItem = null;
                    }
                    //gathers the directory elements
                    Enumeration files = fileConncetion.list();
                    while (files.hasMoreElements()) {
                        String file = (String) files.nextElement();
                        append(file, null);
                    }
//
                    myForm.getDisplay().setCurrent(this);
                    try {
                        if (fileConncetion != null) {
                            fileConncetion.close();
                            fileConncetion = null;
                        }
                    } catch (IOException ex) {
                        ex.printStackTrace();
                    }
                }//if (fileConncetion.isDirectory())
                else {
                    System.out.println(path);
                    //if it gets a file then calls the publishToServer() method
                    myForm.publishToServer();

                }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top