首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检测Android上是否正在运行新媒体文件扫描(后台)

如何检测Android上是否正在运行新媒体文件扫描(后台)
EN

Stack Overflow用户
提问于 2012-03-10 23:09:52
回答 1查看 2.6K关注 0票数 1

我有两个活动: Main和Processing。在Processing活动中,对文件夹中的文件名执行编辑操作,然后启动扫描以通过广播进行更新,并在扫描完成时进行检查。

代码语言:javascript
运行
复制
//end batch renaming operation
//start updating media store library
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,Uri.parse("file://"+Environment.getExternalStorageDirectory()))); 
//show toast "updating"
op_media_mounted.show();
//catch when updaitng op ends
IntentFilter filter = new IntentFilter(Intent.ACTION_MEDIA_SCANNER_FINISHED);
filter.addDataScheme("file");                   
BroadcastReceiver mReceiver = (new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_MEDIA_SCANNER_FINISHED)) {
        Toast.makeText(frm_elabora.this, "Scan complete.", Toast.LENGTH_SHORT).show();
                        }
                    }
                });
registerReceiver(mReceiver, filter);   

如果扫描正在运行,我想传递阻止处理的活动。我可以先检查扫描是否正在运行,然后启动第二个处理活动?就像这样。

代码语言:javascript
运行
复制
Button btnstart = (Button)findViewById(R.id.btn_start);
btnstart.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
        if ( there_isnt_scan_for_new_media_file )
            startActivity(intent_processing);
        else{
                wait_until_ACTION_MEDIA_SCANNER_FINISHED
                startActivity(intent_processing);
        }

我需要检查这一点,因为如果我在android运行扫描时重命名文件,当我在processing活动中编辑文件时,最终我在文件夹中找到了大小为0字节的其他文件,就像更改之前一样。所以我必须等待扫描完成。我找不到解决办法。

更新:我找到了这个

代码语言:javascript
运行
复制
    public static Uri getMediaScannerUri ()
    Since: API Level 1
    Uri for querying the state of the media scanner.

我试一下这个

代码语言:javascript
运行
复制
    //send broadcast
    sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, 
            Uri.parse("file://" +
            Environment.getExternalStorageDirectory())));
    //show media scanner state
    Toast.makeText(frm_elabora.this,
        MediaStore.getMediaScannerUri().toString(),
        Toast.LENGTH_SHORT).show();

我总是得到"content://media/none/media_scanner“...如果我在发送ACTION_MEDIA_MOUNTED之后请求getMediaScannerUri(),我应该得到与“content://ACTION_MEDIA_MOUNTED/none/media_scanner”不同的内容?

EN

Stack Overflow用户

发布于 2012-03-20 21:27:47

你有没有试过MEDIA_SCANNER_VOLUME

通常,当介质扫描程序正在运行时,此列不为null。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9647478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档