Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot Write On Micro SDCard On BlackBerry

I am trying to save some files on micro SDCard. To check the availability of SDCard, I am using the following method;

private boolean isSdCardReady() {
    Enumeration e = FileSystemRegistry.listRoots();

    while (e.hasMoreElements()) {
        if (e.nextElement().toString().equalsIgnoreCase("sdcard/")) {    
            return true;
        }
    }
    return false;
}

Even if this method returns true, when I try to save files, it gives exception net.rim.device.api.io.file.FileIOException: File system is not ready.

What does this means? If SDCard is not available, then why its listed in FileSystemRegistry.listRoots()?

How can I make sure that SDCard is available for writing?

My development environment:

  • BlackBerry JDE Eclipse Plugin 1.5.0
  • BlackBerry OS 4.5
  • BlackBerry Bold with a 3G card
like image 906
Mudassir Avatar asked Jul 04 '12 08:07

Mudassir


1 Answers

  1. Usually I had this error when I tried to access SD card on device restart. You have to postpone all operations in app until startup finished:

    while (ApplicationManager.getApplicationManager().inStartup()) {
        try {
            Thread.sleep(500);
        } catch (InterruptedException ignored) {
        }
    }
    
  2. I remember one more possible cause mentioned here. You have to close all streams after using.

like image 70
Eugen Martynov Avatar answered Sep 30 '22 04:09

Eugen Martynov