Android.support.v7.app.MediaRouteButton does not display

This is in my layout:

    <android.support.v7.app.MediaRouteButton
    android:id="@+id/button_fling"
    android:layout_gravity="center_vertical"
    android:layout_width="wrap_content"
    android:background="@drawable/mr_ic_media_route_holo_light"
    android:layout_height="wrap_content"       
    android:mediaRouteTypes="user"
    android:layout_weight="1"
    android:visibility="visible" />

and this is in my my work:

@Override

    protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);
            mMediaRouter = MediaRouter.getInstance(getApplicationContext());
            mMediaRouteSelector = new MediaRouteSelector.Builder()
            .addControlCategory(CastMediaControlIntent.categoryForCast(getString(R.string.app_id)))
            .build();
            mMediaRouterCallback = new MyMediaRouterCallback();

            mMediaRouteButton = (MediaRouteButton) findViewById(R.id.button_fling);
            mMediaRouteButton.setRouteSelector(mMediaRouteSelector);
        button_fling2 = (ImageView)findViewById(R.id.button_fling2);
}



    public class MyMediaRouterCallback extends MediaRouter.Callback {
    public int mRouteCount =0;
    @Override
    public void onRouteAdded(MediaRouter router, RouteInfo route) {
        Log.d(TAG, "onRouteAdded");
        if (++mRouteCount == 1) {
            // Show the button when a device is discovered.
            Log.i(TAG,"MediaRoute is visible");
            button_fling2.setVisibility(View.VISIBLE);
            mMediaRouteButton.setVisibility(View.VISIBLE);
        }
    }

    @Override
    public void onRouteRemoved(MediaRouter router, RouteInfo route) {
        Log.d(TAG, "onRouteRemoved");
        if (--mRouteCount == 0) {
            // Hide the button if there are no devices discovered.
            Log.i(TAG,"MediaRoute is GONE");
            button_fling2.setVisibility(View.GONE);
            mMediaRouteButton.setVisibility(View.GONE);
        }
    }

}

ButtonFling2 is an ImageView that I use to test MyMediaRouterCallback whether it works or not. It successfully hides / shows the image. However, for button_fling (which is an instance of mediaRouteButton) nothing is displayed. It’s as if he cannot find MediaRouteButton resources, so he doesn’t show a single icon to show ... does anyone ever fix this or run into this?

I don't get any errors that just don't appear, but the logs show that they are visible, and an ImageView appears for testing.

+3
source share
2 answers

, Router Media. , , . . !

100%, , , - . ActivityBar Activity !:)

+2

onRouteChanged() onRouteAdded() .

Example code:
    // for MediaRouterButtonActivity
        @Override
        public void onRouteChanged(MediaRouter router, RouteInfo route) {
          if (++mRouteCount == 1) {
                // Show the button when a device is discovered.
                mMediaRouteButton.setVisibility(View.VISIBLE);
          }
    }
+1

Source: https://habr.com/ru/post/1539052/


All Articles