2017-02-27 127 views
1

我正在开发一个用于下载的歌曲的应用程序。我可以下载歌曲,并且在下载完成后,我将以编程方式将该歌曲移到其他文件夹中。音乐文件没有得到明显的播放音乐

我面临的问题是,如果我将歌曲移动到另一个文件夹,它在Google Play音乐中不会显示,并且如果我不将它移动到另一个文件夹,它会在Google Play音乐中显示,但如果歌曲没有移动它一旦卸载应用程序就会被删除。 请帮我解决这个问题。我被困在这个功能。

谢谢。

回答

1

搜索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音乐库发送广播。

+0

现在面临类似的问题,因为你,我已经尝试添加代码,以onPostExecute我的应用程序()方法,但它仍然是不被认可,我怎么能解决这个问题? – CaptainDaVinci

+0

你是不是能够看到谷歌播放音乐下载的歌曲加入上面的代码后? – Arpit

+0

不幸的是,我设法通过使用下载管理器来解决问题。 – CaptainDaVinci

0

你需要可以拨打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将是无效的,如果扫描失败

+0

感谢您的答复lelloman。请让我知道什么是“mysong.mp3”,什么是“copy.mp3”。我将文件从一个位置移到另一个位置,我有文件位置和文件名的路径。我现在应该怎么做 ? – Arpit

+0

这只是一个例子,重要的是MediaScannerConnection.scanFIle,你需要调用一个,而是在那里file.getAbsolutePath()是你的新的文件路径 – lelloman

+0

感谢的人,但我觉得MediaScannerConnection没有在广播接收器不允许的。 – Arpit