相关疑难解决方法(0)

如何在Android上刷新MediaStore?

这开始是Android论坛上的一般用户问题.然而,它必然是一个编程问题.这是我的问题.

Android有一项服务 - MediaScanner - 它可以随时在后台运行(我相信)SD卡已卸载并重新安装.此服务收集卡上所有媒体文件的数据,并提供可由音乐应用程序查询的SQLite DB.大多数音乐应用程序都使用此服务,因为它可以节省与扫描SD卡相关的电量消耗.

自从我开始使用android以来,我一直遇到一个问题,即即使从SD卡中删除后,与该设备同步的M3U播放列表仍保留在此SQLite DB中.虽然卡上只有大约10个m3u的文件,但我现在已经收集了大约40个播放列表,这些播放列表出现在我使用的任何音乐应用程序中.剩余的播放列表不播放,并且是空的.我可以通过从音乐应用程序中删除它们来手动删除它们,但我厌倦了这样做.必须有更好的方法来删除这些鬼播放列表.

Android Market上有两个应用程序 - SDRescan和Music Sc​​anner,据说可以做到这一点,但它们都不起作用.

我开始编写自己的应用程序来刷新或删除MediaStore数据库并从头开始,但我没有走得太远.我有一个运行以下代码的Android应用程序:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, 
        Uri.parse("file://" + Environment.getExternalStorageDirectory()))); 
Run Code Online (Sandbox Code Playgroud)

我在网上找到了一些这样的代码扫描SD卡的方法,但我没有任何运气.有小费吗?

完整代码:

package com.roryok.MediaRescan;

import android.app.Activity;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;

public class MediaRescan extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, 
                Uri.parse("file://" + Environment.getExternalStorageDirectory()))); 
        setContentView(R.layout.main);
    }

    //Rescan the sdcard after copy the file
    private void rescanSdcard() throws Exception{     
      Intent scanIntent = …
Run Code Online (Sandbox Code Playgroud)

android mediastore

50
推荐指数
3
解决办法
5万
查看次数

标签 统计

android ×1

mediastore ×1