Музыкальные файлы не отображаются в музыке Google Play

Я разрабатываю приложение, которое используется для загрузки песен. Я могу загружать песни, и когда загрузка завершена, я программно перемещаю эту песню в другую папку.

Проблема, с которой я столкнулся, заключается в том, что если я перемещаю песню в другую папку, она не становится видимой в Google Play Music, и если я не перемещаю ее в другую папку, она отображается в Google Play Music, но если песня не перемещена. удаляется после удаления приложения. Пожалуйста, помогите мне, что можно сделать, чтобы решить эту проблему. Я застрял в этой функции.

Спасибо.


person Arpit    schedule 27.02.2017    source источник


Ответы (3)


вам нужно позвонить MediaScannerConnection.scanFile() после того, как вы скопировали новый файл, и приложение PlayMusic увидит его

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

    }

});

согласно официальным документам, Uri, переданное в onScanCompleted(String, Uri), будет null, если сканирование не удалось

person lelloman    schedule 27.02.2017
comment
Спасибо за ответ leloman. Пожалуйста, дайте мне знать, что такое mysong.mp3 и copy.mp3. Я переместил файл из одного места в другое, у меня есть путь как к местоположению, так и к имени файла. Что мне теперь делать ? - person Arpit; 28.02.2017
comment
это всего лишь пример, главное - это MediaScannerConnection.scanFIle, вам нужно вызвать его, а вместо этого, где file.getAbsolutePath() - ваш новый путь к файлу - person lelloman; 28.02.2017
comment
Спасибо, чувак, но я думаю, что MediaScannerConnection не разрешен в BroadcastReceiver. - person Arpit; 28.02.2017
comment
что ты имеешь в виду? - person lelloman; 28.02.2017
comment
Я использую BroadcastReceiver для проверки после завершения загрузки, и в этом я использую MediaScannerConnection. Но после запуска кода я получаю исключение. - person Arpit; 28.02.2017

После поиска 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 по умолчанию после завершения загрузки и перемещения.

person Arpit    schedule 28.02.2017
comment
Я столкнулся с той же проблемой, что и вы, я попытался добавить ваш код в метод onPostExecute() для моего приложения, но он все еще не распознается, как я могу это исправить? - person CaptainDaVinci; 29.06.2017
comment
Вы не можете увидеть загруженную песню в Google Play Music после добавления вышеуказанного кода? - person Arpit; 03.07.2017
comment
К сожалению, нет, мне удалось решить проблему с помощью диспетчера загрузок. - person CaptainDaVinci; 03.07.2017

Ваша новая папка на SD-карте? Потому что приложение Google Play Music может видеть песни только во внутренней памяти, а не на SD-карте.

person Joshua Kan    schedule 06.11.2018