Как настроить Cast Cast в Google Cast Framework для Android - PullRequest
0 голосов
/ 22 мая 2019

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

В настоящее время он просто показывает AlertDialog со списком доступных устройств для подключения.

Вместо этого я хочу открыть Activity, которая покажет список устройств с моей собственной реализацией пользовательского интерфейса.

Это диалог, который я пытаюсь изменить:

enter image description here

Я обнаружил много аспектов настройки этого SDK, но ничего не связано с этим диалогом.

Ответы [ 2 ]

1 голос
/ 23 мая 2019

Итак, я нашел способ достичь этого. Сначала я создал класс, который переопределяет MediaRouteActionProvider (это основной класс, который контролирует функциональность этой кнопки)

public class CustomMediaRouteActionProvider extends androidx.mediarouter.app.MediaRouteActionProvider {

    public CustomMediaRouteActionProvider(Context context) {
        super(context);
    }

    @Override
    public MediaRouteButton onCreateMediaRouteButton() {
        return new CastButton(getContext());
    }
}

Затем выВам нужно переопределить функциональность кнопки своей собственной, в моем случае я открываю новое действие.

public class CastButton extends MediaRouteButton {


    public CastButton(Context context) {
        this(context, null);
    }

    public CastButton(Context context, AttributeSet attrs) {
        this(context, attrs, R.attr.mediaRouteButtonStyle);
    }

    public CastButton(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    public boolean performClick() {
        Intent i = new Intent(getContext(), RemoteDevicesActivity.class);
        getContext().startActivity(i);
        return true;
    }
}

Наконец, вам нужно изменить xml, содержащий эту кнопку (я предполагаю, что вы уже реализовалиэта часть)

Измените поле app: actionProviderClass с вашим пользовательским классом (в данном случае CustomMediaRouteActionProvider) и все готово.

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item android:title="@string/connect_to"
        android:id="@+id/cast"
        app:actionProviderClass="CustomMediaRouteActionProvider"
        app:showAsAction="ifRoom" />

</menu>
0 голосов
/ 20 июня 2019

У вас есть более подробная информация об окончательном результате этого?Мне нужно сделать что-то подобное, но я не понимаю, как ты этого добился

...