Можно ли подключиться к Spotify MediaBrowserService? - PullRequest
5 голосов
/ 13 февраля 2020

Я пишу голосовой помощник и хотел бы иметь возможность запускать результаты поиска в Spotify. Чтобы понять, как подключиться к Spotify и другим приложениям, я играю с тестовым приложением Google Media Controller , которое описывается следующим образом:

Создайте простой MediaController, который подключается к MediaBrowserService для тестирования элементов управления мультимедиа между приложениями.

Это приложение работает с образцом Universal Android Musi c Player или любым другим приложением, которое реализует медиа-API.

Когда я запускаю приложение, оно определяет Spotify как предоставляющее MediaBrowserService, но я получаю сообщение об ошибке при попытке подключиться к Spotify через приложение:

Android screenshot containing error:

Вот код подключения :

mBrowser = new MediaBrowserCompat(this, mMediaAppDetails.componentName,
        new MediaBrowserCompat.ConnectionCallback() {
             @Override
             public void onConnected() {
                 setupMediaController();
                 mBrowseMediaItemsAdapter.setRoot(mBrowser.getRoot());
             }

             @Override
             public void onConnectionSuspended() {
                 //TODO(rasekh): shut down browser.
                 mBrowseMediaItemsAdapter.setRoot(null);
             }

             @Override
             public void onConnectionFailed() {
                 showToastAndFinish(getString(
                         R.string.connection_failed_msg, mMediaAppDetails.appName));
             }

         }, null);
mBrowser.connect();

В частности, вскоре после вызова mBrowser.connect() вызывается метод onConnectionFailed() обратного вызова.

Означает ли это, что Spotify отклоняет MediaBrowserService запросов от приложений, не занесенных в белый список (как описано здесь ), и что отдельный автор приложения не может подключиться к MediaBrowserService Spotify или есть какие-то Ветхий Завет ее способ подключения? FWIW, Google Play Musi c также отклоняет соединения через приложение.

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

Ответы [ 2 ]

3 голосов
/ 20 февраля 2020

Означает ли это, что Spotify отклоняет запросы MediaBrowserService от приложений, не занесенных в белый список (как описано здесь), и что отдельный автор приложения не может подключиться к MediaBrowserService Spotify или существует какой-либо другой способ подключения?

Да, это именно то, что означает onConnectionFailed.

Вы можете проверить это, изменив UAMP's onGetRoot, чтобы вернуть null вместо BrowserRoot(UAMP_EMPTY_ROOT, rootExtras) .

Как правило, вам нужно обратиться к каждому игроку musi c и попросить его внести в белый список ваше приложение (или переключиться на разрешение всем приложениям контролировать их воспроизведение), если вы хотите использовать стандартные Android API и MediaBrowserCompat для подключения к ним.

1 голос
/ 23 февраля 2020

Вы не можете подключиться к Spotify с помощью MediaBrowserService, если ваше приложение не является системным приложением, подписанным с помощью ключа Android Build. Я не уверен на 100%, что даже это поможет.

Однако вам не нужен MediaBrowserService для запроса Spotify. Я бы посоветовал вам попробовать Spotify Android SDK: https://developer.spotify.com/documentation/android/

...