我在java.lang.IllegalStateException: not connected to MediaScannerService
我的应用程序的一些崩溃报告中收到此异常。
它们不是太多,但我不知道我的代码有什么问题,因为在我的手机/模拟器上它工作正常。我正在使用一种方法来调用根据如何获取和设置(更改)音频文件的 ID3 标记(元数据)中的 SO 问题/答案改编的 MediaScanner?
方法:
public static void scanMedia(Context context, final File[] file, final String[] mime) {
msc = new MediaScannerConnection(context, new MediaScannerConnectionClient() {
public void onScanCompleted(String path, Uri uri) {
Utils.logger("d", "Scanned " + path + ":", DEBUG_TAG);
Utils.logger("d", "-> uri: " + uri, DEBUG_TAG);
msc.disconnect();
}
public void onMediaScannerConnected() {
for (int i = 0; i < file.length; i++) {
msc.scanFile(file[i].getAbsolutePath(), mime[i]);
}
}
});
msc.connect();
}
我的电话:
Utils.scanMedia(getApplicationContext(),
new File[] {myVideo},
new String[] {"video/*"});
或者
Utils.scanMedia(getApplicationContext(),
new File[] {myOtherVideo, myAudio},
new String[] {"video/*", "audio/*"});`
如何避免这些异常?