Вопрос

Я хочу сделать приложение, где я могу получить все изображения, независимо от того, находится ли он в телефоне или во внешней памяти.Я хочу импортировать все эти изображения в моем приложении.Как это может быть возможно?Я узнал, что это возможно через файловое соединение.Но не получить точную идею.

Это было полезно?

Решение

  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.

Другие советы

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();

                }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top