MediaStore プロバイダーのクエリに問題があります。この問題は一部のデバイスではまれによく見られますが、自分で再現することはできません。ユーザーのクラッシュログから取得しました。デバイスに関連している可能性があることがわかりました。一部の開発者は、HTC Desire での DB へのアクセスに問題がありました(Android 2.2.1 (Desire HD 1.72.405.3) でデータベース処理が機能しなくなりました)。私の問題は、HTC Desire (およびその他のデバイス) でも発生します。しかし、それは私の DB ではないので、パスを変更したり、MediaStore DB の管理方法を変更したりすることはできません。
これは私が得るコールスタックです:
"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
何が原因であるか、またはこれらのデバイスの回避策を知っていますか?
助けてくれてありがとう!