Я пишу голосовой помощник и хотел бы иметь возможность запускать результаты поиска в Spotify. Чтобы понять, как подключиться к Spotify и другим приложениям, я играю с тестовым приложением Google Media Controller, который описывается следующим образом:
Создайте простой MediaController, который подключается к MediaBrowserService, чтобы протестировать элементы управления мультимедиа между приложениями.
Это приложение работает с образцом универсального музыкального проигрывателя Android или любым другим приложением, реализующим мультимедийные API.
Когда я запускаю приложение, оно определяет, что Spotify предоставляет MediaBrowserService
, но я получаю сообщение об ошибке, когда пытаюсь подключиться к Spotify через приложение:
Вот код подключения:
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 Music также отклоняет подключения через приложение.
У меня также есть пытался заставить Spotify искать и воспроизводить, запустив намерение, но безуспешно.
MediaBrowserService
не имеет ничего общего со Spotify, и ожидается, что тестовый пример Media Controller будет подключаться к примеру универсального музыкального проигрывателя Android а>. См. MusicService.kt; Spotify должен был бы предоставить услугу Intent, подобную этой. - person Martin Zeitler   schedule 16.02.2020MediaBrowserService
, поэтому исходное утверждение было частично неточным. - person Martin Zeitler   schedule 20.02.2020