Я делаю приложение, которое работает в фоновом режиме и запускается при загрузке устройства.Я прочитал документы и получил файлы SQLiteDemo от RIM, и я использую их для создания базы данных на моей SD-карте в симуляторе.
К сожалению, я получаю эту ошибку: DatabasePathException:Invalid path name. Path does not contains a proper root list. See FileSystemRegistry class for details.
Вот мой код:
public static Database storeDB;
public static final String DATABASE_NAME = "testDB";
private String DATABASE_LOCATION = "file:///SDCard/Databases/MyDBFolder/";
public static URI dbURI;
dbURI = URI.create(DATABASE_LOCATION+DATABASE_NAME);
storeDB = DatabaseFactory.openOrCreate(dbURI);
Я взял try/catch
для URI.create
и DatabaseFactory.openOrCreate
для целей этого поста.
Итак, кто угодноскажите мне, почему я не могу создать базу данных на моем симуляторе?
Если я загружу ее и перейду на носитель, я могу создать папку вручную.SD-карта указывает на папку на моем жестком диске, и если я создаю там папку, она также отображается на симуляторе, поэтому я могу создавать папки, но не программно.
Кроме того, у меня естьпопробовал это из документации разработчика:
// Determine if an SDCard is present
boolean sdCardPresent = false;
String root = null;
Enumeration enum = FileSystemRegistry.listRoots();
while (enum.hasMoreElements())
{
root = (String)enum.nextElement();
System.err.println("root="+root);
if(root.equalsIgnoreCase("sdcard/"))
{
sdCardPresent = true;
}
}
Но он только поднимает store/
и никогда sdcard/
.Кто-нибудь может помочь?Спасибо.