我在查询 MediaStore 提供程序时遇到问题。这个问题对于一些罕见的设备很常见,但我自己无法重现。我从用户崩溃日志中得到它。我发现它可能与设备有关。一些开发人员在访问 HTC Desire 上的数据库时遇到问题(数据库处理在 Android 2.2.1 (Desire HD 1.72.405.3) 上停止工作)。我的问题也出现在 HTC Desire(和其他一些设备)上。但它不是我的数据库,所以我无法更改路径或更改 MediaStore 数据库的管理方式。
这是我得到的调用堆栈:
"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 和APIs:4.1.1;4.2.2;4.0.4,4.1.2
请问,您知道它会导致什么,或者您知道这些设备的一些解决方法吗?
感谢您的任何帮助!