MediaScannerConnection scanFile扫描程序崩溃

时间:2010-09-27 01:57:48

标签: android

当我运行以下代码行时:

MediaScannerConnection scanner = new MediaScannerConnection( this, null );
    scanner.connect();
    scanner.scanFile( szFinalFileName, null ); //<---crash here

我在控制台窗口中收到崩溃和此消息:

09-26 14:47:44.074: ERROR/MediaScannerService(10288): Failed to delete file /data/data/com.android.providers.media/pause_scan

有没有人有任何想法,为什么这不起作用,我可以做些什么来解决它?

提前致谢: - )

2 个答案:

答案 0 :(得分:8)

另一种方法是广播一个意图并让系统处理它。

e.g。

public void scanFile(File downloadedFile){
    Uri contentUri = Uri.fromFile(downloadedFile);
    Intent mediaScanIntent = new Intent("android.intent.action.MEDIA_SCANNER_SCAN_FILE");
    mediaScanIntent.setData(contentUri);
    mContext.sendBroadcast(mediaScanIntent);
}

答案 1 :(得分:5)

我明白了。

以下是代码:

final String szFile = szFinalFileName;

            m_pScanner = new MediaScannerConnection(this,
                    new MediaScannerConnectionClient() {
                        public void onMediaScannerConnected() {
                            m_pScanner.scanFile(szFile, null /*mimeType*/);
                        }

                        public void onScanCompleted(String path, Uri uri) {
                            if (path.equals(szFile)) {
                                MugMashView.this.runOnUiThread(new Runnable() {
                                    public void run() {
                                        Toast
                                            .makeText(getApplicationContext(),
                                                "Image now available in Home > Pictures",
                                                Toast.LENGTH_SHORT)
                                            .show();
                                    }
                                });
                                m_pScanner.disconnect();
                            }
                        }

                });
            m_pScanner.connect();