SJo*_*GSO 6 java android image android-mediascanner
我试图让MediaScanner只扫描一个目录时遇到问题.
我的应用程序拍照,并将它们保存到SD卡/ DCIM/AppPictures /,显然我需要调用MediaScanner才能显示在图库应用程序中.以下代码适用于我的目的:
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
Run Code Online (Sandbox Code Playgroud)
但它似乎太浪费了!当我确切知道文件的位置时,我不想使用资源尝试扫描整个SD卡.我也尝试了以下内容:
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory+"/DCIM/AppPictures/")));
Run Code Online (Sandbox Code Playgroud)
但这没有产生任何结果.有人可以让我知道完成这项工作的正确方法吗?
在我的应用程序中,我还下载图片。
当我的主要活动(下载图片)开始时,我启动媒体扫描仪连接。下载是连续的,一旦图片到达,我将文件名存储在字符串中(下面名为 currentFile)并“连接”媒体扫描仪:
public class SomeActivity
extends Activity implements MediaScannerConnectionClient {
....
protected MediaScannerConnection mMs;
....
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
....
mMs = new MediaScannerConnection(this, this);
....
}
@Override
public void onMediaScannerConnected() {
mMs.scanFile(currentFile, null);
}
@Override
public void onScanCompleted(String path, Uri uri) {
mMs.disconnect();
}
}
Run Code Online (Sandbox Code Playgroud)
要启动扫描,我只需执行以下操作:
currentFile = "/mnt/sdcard/someLocationToScan/somefile.jpg";
mMs.connect();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
699 次 |
| 最近记录: |