【问题标题】:Music Files not getting visible in Google Play music音乐文件在 Google Play 音乐中不可见
【发布时间】:2017-02-27 12:14:13
【问题描述】:

我正在开发一个用于下载歌曲的应用程序。我可以下载歌曲,下载完成后,我会以编程方式将该歌曲移至不同的文件夹。

我面临的问题是,如果我将歌曲移动到另一个文件夹,它在 google play 音乐中不可见,如果我不将它移动到另一个文件夹,它在 Google Play 音乐中可见,但如果歌曲是未移动它会在应用程序卸载后被删除。 请帮助我解决这个问题。我被这个功能卡住了。

谢谢。

【问题讨论】:

    标签: android google-music


    【解决方案1】:

    您需要在复制新文件后致电MediaScannerConnection.scanFile(),PlayMusic 应用会看到它

    MediaScannerConnection.scanFile(context, new String[]{absolutePathToTheNewFile}, null, new MediaScannerConnection.OnScanCompletedListener() {
        public void onScanCompleted(String path, Uri uri) {
    
        }
    
    });
    

    根据official docs,如果扫描失败,传入onScanCompleted(String, Uri)Uri将为空

    【讨论】:

    • 感谢lelloman 的回复。请让我知道什么是“mysong.mp3”和什么是“copy.mp3”。我将文件从一个位置移动到另一个位置,我有位置和文件名称的路径。我现在该怎么办?
    • 这只是一个例子,重要的是 MediaScannerConnection.scanFIle,你需要调用它,而 file.getAbsolutePath() 是你的新文件路径
    • 谢谢,但我认为广播接收器中不允许使用 MediaScannerConnection。
    • 什么意思?
    • 我正在使用 BroadcastReceiver 在下载完成后进行检查,因为我正在使用 MediaScannerConnection。但是在运行代码后我得到了一个异常。
    【解决方案2】:

    搜索 3 天后。我终于找到了解决办法。

        Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
        intent.setData(Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "/FolderName/"+inputFile)));
        context.sendBroadcast(intent);
    

    下载和移动完成后,我将向默认的 Google 音乐库发送广播。

    【讨论】:

    • 我遇到了和你类似的问题,我已经尝试将你的代码添加到我的应用程序的 onPostExecute() 方法中,但仍然无法识别,我该如何解决这个问题?
    • 添加上述代码后,在谷歌播放音乐中看不到下载的歌曲?
    • 很遗憾没有,我设法通过使用下载管理器解决了这个问题。
    【解决方案3】:

    您的新文件夹在 SD 卡上吗? 因为 Google Play 音乐应用只能看到内部存储中的歌曲,而不是 SD 卡。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多