Android Cast SDK V3 и MediaRouteProviderService
Я использовал Cast SDK v2 для приведения носителей на предоставленные маршруты MediaRouteProviderService
который работал отлично.
Сейчас я перехожу на SDK v3 и его состояния
В версии 3 процесс обнаружения автоматически запускается и останавливается платформой, когда приложение выходит на передний план и уходит на задний план, соответственно. MediaRouteSelector и MediaRouter.Callback не должны использоваться
Так как предоставить пользовательские маршруты, используя MediaRouteProviderService
с литой SDK v3
1 ответ
Итак, как предоставить пользовательские маршруты с помощью MediaRouteProviderService с Cast SDK v3
В версии 3 обнаружение устройств теперь обрабатывается CastContext. В версии 3 "Настройка обнаружения устройств" говорится, что:
Обнаружение устройства полностью управляется CastContext. При инициализации CastContext приложение-отправитель указывает идентификатор приложения-получателя и при необходимости может запросить фильтрацию пространства имен, задавая SupportNamespaces в CastOptions. CastContext содержит ссылку на MediaRouter внутри и запускает процесс обнаружения, когда приложение отправителя выходит на передний план, и останавливается, когда приложение отправителя входит в фон.
class CastOptionsProvider implements OptionsProvider {
public static final String CUSTOM_NAMESPACE = "urn:x-cast:custom_namespace";
@Override
public CastOptions getCastOptions(Context appContext) {
List<String> supportedNamespaces = new ArrayList<>();
supportedNamespaces.add(CUSTOM_NAMESPACE);
CastOptions castOptions = new CastOptions.Builder()
.setReceiverApplicationId(context.getString(R.string.app_id))
.setSupportedNamespaces(supportedNamespaces)
.build();
return castOptions;
}
@Override
public List<SessionProvider> getAdditionalSessionProviders(Context context) {
return null;
}
}