我正在构建一个Blackberry应用程序,我在应用程序启动时创建了一个数据库。问题是代码可以正常使用sdCard,但是当我删除SDCard并尝试使用手机内存时,它无法正常工作。 这是我用来创建数据库的代码:
public static String db_location="file:///SDCard/Databases/MyApp/MyDatabase.db";
public MyDatabase() {
// TODO Auto-generated constructor stub
boolean sdCardPresent = false;
String root = null;
Enumeration e = FileSystemRegistry.listRoots();
while (e.hasMoreElements())
{
root = (String)e.nextElement();
if(root.equalsIgnoreCase("sdcard/"))
{
sdCardPresent = true;
}
}
if(!sdCardPresent)
{
// If an SDCard is not available we will store our database in
// flash memory. This is not recommended for large databases.
db_location = "file:///store/home/user/Databases/MyApp/MyDatabase.db";
}
try
{
URI myURI = URI.create(db_location);
d = DatabaseFactory.create(myURI);
d.close();
}
catch ( Exception e1 )
{
System.out.println( e1.getMessage() );
e1.printStackTrace();
}
}
请建议
答案 0 :(得分:2)
BlackBerry支持仅在某些型号上将eMite数据库保存在eMMC内存中( / store )。
例如,BlackBerry Curve 8520(您似乎有)不支持在 / store 中保存SQLite数据库(仅限于 / SDCard )。