Android:MediaStore中查询期间的磁盘I / O错误

时间:2013-04-06 07:14:06

标签: android database sqlite mediastore

我在查询MediaStore提供程序时遇到问题。这个问题在某些设备中很少见,但我自己无法重现。我从用户崩溃日志中获取它。我发现它可能与设备有关。一些开发人员在HTC Desire(Database handling stoped working on Android 2.2.1 (Desire HD 1.72.405.3))上访问他们的数据库时遇到了问题。我的问题也出现在HTC Desire(以及其他一些设备)上。但它不是我的数据库,所以我无法改变路径或改变MediaStore DB的管理方式。

这是我得到的一个callstack:

"android.database.sqlite.SQLiteDiskIOException: disk I/O error (code 522)
    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:182)
    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:140)
    at android.content.ContentProviderProxy.query(ContentProviderNative.java:366)
    at android.content.ContentResolver.query(ContentResolver.java:370)
    at android.content.ContentResolver.query(ContentResolver.java:313)

以标准方式调用查询:

contentResolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, new String[] { "*" }, null, null, null);

它发生在我的应用程序中我对MediaStore进行查询的所有情况。

具体关于设备:GT-I9003,HTC Desire,AM_Stick02,X10.Dual,HTC Sensation,C5155  和API:4.1.1; 4.2.2; 4.0.4,4.1.2

请您知道它可能导致什么,或者您知道这些设备的解决方法吗?

感谢您的帮助!