80,354
社区成员
发帖
与我相关
我的任务
分享
/**
* 获取SD卡或者内置存储空间可以保存资源的路径.
* <em>此处未实现对存储空间是否充足进行判断</em>.
*
* @return 返回保存数据的路径, 有SD卡则是SD上的路径, 反之内置存储空间上的路径.
*/
private String getSDPath() {
boolean hasSDCard = Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
if (hasSDCard) {
/*return context.getExternalFilesDir(Environment.DIRECTORY_DCIM).getPath();*/
return Environment.getExternalStorageDirectory().toString() + "/xxxxxxx";
} else
return "/data/data/com.xxxxxx.xxx123xxx/xx123456";
}
原来的扫描方式:
//filePaths =文件的地址
MediaScannerConnection.scanFile(context,
new String[]{filePaths}, new String[]{"image/jpeg"},
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.i("ExternalStorage", "Scanned " + path + ":");
Log.i("ExternalStorage", "-> uri=" + uri);
}
});
这是扫描目录的方法,但是没效果:
/**
* 启动MediaScanner服务,扫描媒体文件,程序通过发送下面的Intent启动MediaScanner服务。
* 扫描指定目录
*
* @param dir
*/
private void scanDirAsync(String dir) {
Intent scanIntent = new Intent(ACTION_MEDIA_SCANNER_SCAN_DIR);
scanIntent.setData(Uri.fromFile(new File(dir)));
context.sendBroadcast(scanIntent);
}