Creación de la base de datos SQLite de BlackBerry: “el sistema de archivos no está listo”

Mi aplicación toma datos de un servidor y los guarda en una base de datos SQLite. Esto funciona bien en el simulador 9550 ( BlackBerry Storm 2 ), pero cuando ejecuto esto en cualquier otro simulador me da este error:

sistema de archivos no listo

Fragmento de código:

URI myURI = URI.create("file:///store/MyDataBase.db"); 

¿Por qué está pasando esto?

Puede ser que la tienda no esté montada y disponible en el sistema de archivos raíz en el 9550. Debe usar javax.microedition.io.file.FileSystemRegistry.listRoots () para obtener una enumeración de los sistemas de archivos montados actualmente.

Richard tiene razón. Debe verificar la existencia de la raíz del sistema de archivos “store”. Sin embargo, hay una arruga adicional para usar SQLite. RIM solo es compatible con SQLite en el almacenamiento de eMMC . Entonces, incluso si existe una “tienda”, solo funcionará si el almacenamiento subyacente es eMMC. Cabe destacar que el dispositivo BlackBerry Bold 9650 , AKA Bold2, tiene “tienda”, pero no es eMMC, por lo que no puede poner allí una base de datos SQLite.

No conozco ninguna forma directa de averiguar si un sistema de archivos está usando eMMC. Le pregunté a RIM y me dijeron que verificara el tamaño del sistema de archivos. Si es más de 1 GB, entonces es eMMC. Esa no fue una respuesta muy satisfactoria para mí. Terminé buscando el “sistema” del sistema de archivos. Es un sistema de archivos de solo lectura, pero solo está presente para el almacenamiento de eMMC, y si existe, puede escribir una base de datos en la raíz del sistema de archivos “store”.

A través de la descripción de la guía para desarrolladores de SQLite :

Puede usar la API SQLite, que se proporciona en el paquete net.rim.device.api.database , para almacenar los datos de la aplicación de forma persistente en la memoria eMMC o en una tarjeta microSD.