2011-10-25 66 views
4

作为我正在开发的BlackBerry项目的一部分,我需要存储数据的能力。根据RIM的文档,在运行v5或更高版本操作系统的手持设备上,我们可以使用SQLite数据库与更典型的PersistenceStore方法。BlackBerry:使用USB电缆时“filesystem not ready”

我注意到当我的手机(手电筒2)通过USB电缆插入时 - 我可以通过调试器运行代码 - “SDCard /”和“存储/”不再可用(当拨打FileSystemRegistry.listRoots时,这些都不再列举)。只有“system /”可用,但由于它是只读文件系统,所以这对我来说没有什么好处。

我需要一个读/写文件系统,即使手机连接到PC上也是可用的。

值得注意的是,当我插入手机时,我得到一个对话框,询问我希望如何连接:Sync Media,Mass storage device或Charge Only是3种选项。我选择哪一个并不重要......效果相同,因为只有“system /”可用于文件系统。

任何意见或帮助,不胜感激。

-------------------------------------- UPDATE ------- -------------------------------

我与RIM的开发人员技术支持人员就此问题进行了交谈,并简单通知了此问题是一个时尚。他们的建议是

“这是不是一个错误,这是该设备是如何打算的功能。你可以 听当设备通过USB和使用SystemListener2数据 无法连接的。”

因此,我们所能做的就是提醒用户将手机插入USB电缆,无论您在应用程序中可能需要什么功能(包括文件系统)暂时不可用。它可能是按照设计的功能,但我希望在某些时候他们会改进设计。

+1

这对开发人员来说确实是一种痛苦。如果我的应用程序在后台线程上使用SDCard进行扫描(从网络写入一些数据到文件)会怎么样?我会通过听众通知SDCard刚刚变得不可用,从而获得任何好处吗?我不这么认为。这个结果取决于业务逻辑(有时候可以中断一个行动/任务),但是看起来我们总是期望发生这种情况,并准备好执行一些回滚。 –

+0

像这样的小事情 - 糟糕的架构 - 通过用更新,更好的技术强制“不断前进”来帮助我们保持业务...希望RIM的新操作系统能更好地处理这种情况(Android在这个主题上做得很好) )。 – BonanzaDriver

+0

如果您在谈论BBX(BB OS 7之后的操作系统),那么已经有RIM的官方通知说它不会支持Java。所以我认为我没有机会检查“RIM的新操作系统是否能更好地处理这种情况”。 –

回答

1

我不敢说我​​用这个简单地挣扎然后放弃了。

根据我的经验,无论您做什么,通过USB连接时,RIM都会将SD卡挂载在pc文件系统上。

如果您从机器“弹出”您的设备,您应该可以访问SD卡。

+1

即使通过USB连接,您也会认为RIM仍然可以访问读/写文件系统。最后,如果用户决定使用他们的桌面管理器,这将导致正在运行的应用程序(如后台服务)失去对这些资源的访问权限。我觉得这很有趣,因为有很多场景需要用户管理大文件 - 这可能是你的应用程序的一部分 - 一旦他们连接你的应用程序将停止按设计工作。 – BonanzaDriver

+1

我同意,但考虑到RIM有蹩脚的开发者API的历史,我并不感到惊讶。 – Nico

相关问题