要从选择器对话框中过滤 Chromecast 设备,您可以使用 onFilterRoute:
公共布尔 onFilterRoute(MediaRouter.RouteInfo 路由)
如果路由应该包含在列表中,则返回 true。
默认实现为启用的非默认路由返回 true
匹配选择器。子类可以重写这个方法来过滤
路线不同。
你需要创建一个CustomMediaRouteChooserDialog:
public class CustomMediaRouteChooserDialog extends MediaRouteChooserDialog {
public CustomMediaRouteChooserDialog(Context context) {
super(context);
}
public CustomMediaRouteChooserDialog(Context context, int theme) {
super(context, theme);
}
@Override
public boolean onFilterRoute(MediaRouter.RouteInfo route) {
// Apply your logic here.
// Return false to hide the device, true otherwise
if (TextUtils.equals(route.getName(), "Chromecast-hidden"))
return false;
else
return true;
}
}
然后创建一个CustomMediaRouteChooserDialogFragment:
public class CustomMediaRouteChooserDialogFragment extends MediaRouteChooserDialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
CustomMediaRouteChooserDialog dialog = new CustomMediaRouteChooserDialog(getActivity());
dialog.setRouteSelector(getRouteSelector());
return dialog;
}
}
然后创建一个CustomMediaRouteDialogFactory:
public class CustomMediaRouteDialogFactory extends MediaRouteDialogFactory {
@Override
public MediaRouteChooserDialogFragment onCreateChooserDialogFragment() {
return new CustomMediaRouteChooserDialogFragment();
}
}
然后在创建你的MediaRouteActionProvider 之后调用setDialogFactory:
mediaRouteActionProvider.setDialogFactory(new CustomMediaRouteDialogFactory());