Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android MediaScannerConnection扫描文件扫描程序正在崩溃_Android - Fatal编程技术网

Android MediaScannerConnection扫描文件扫描程序正在崩溃

Android MediaScannerConnection扫描文件扫描程序正在崩溃,android,Android,当我运行以下代码行时: MediaScannerConnection scanner = new MediaScannerConnection( this, null ); scanner.connect(); scanner.scanFile( szFinalFileName, null ); //<---crash here 有人知道为什么这不起作用吗?我能做些什么来修复它 提前谢谢:-我想出来了 代码如下: final String szFile = szFinal

当我运行以下代码行时:

MediaScannerConnection scanner = new MediaScannerConnection( this, null );
    scanner.connect();
    scanner.scanFile( szFinalFileName, null ); //<---crash here
有人知道为什么这不起作用吗?我能做些什么来修复它

提前谢谢:-

我想出来了

代码如下:

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();
我想出来了

代码如下:

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();

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

e、 g


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

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);
}