public abstract class MediaRouteProvider
extends Object
java.lang.Object | |
↳ | android.support.v7.media.MediaRouteProvider |
媒体路由提供程序用于发布其他媒体路由以在应用程序中使用。 媒体路由提供者也可以被声明为一种服务,以向系统中的所有应用发布额外的媒体路由。
媒体路由提供者的目的是通过调用 setDescriptor(MediaRouteProviderDescriptor)
来通知当前已注册的 MediaRouteProvider.Callback
,以发现满足当前 MediaRouteDiscoveryRequest
指定标准的媒体路由并发布 MediaRouteProviderDescriptor
以及关于每条路由的信息。
提供者应该通过实现onDiscoveryRequestChanged(MediaRouteDiscoveryRequest)
并更新它试图发现的路线集来监视发现请求的更改。 它还应处理路线控制请求,如音量更改或media control intents
是执行onCreateRouteController(String)
以返回特定路线的MediaRouteProvider.RouteController
。
媒体路由提供者可以在单个应用程序范围内通过调用MediaRouter.addProvider
将其添加到本地MediaRouter
来MediaRouter
。 通过在提供商的清单中注册MediaRouteProviderService
,媒体路由提供商也可以在全球范围内适用于所有应用。 当媒体路由提供商被注册为服务时,使用媒体路由器API的所有应用程序将能够发现并使用提供商的路由,而无需另外安装任何其他应用。
该对象只能在主线程上访问。
Nested classes |
|
---|---|
class |
MediaRouteProvider.Callback 当路由信息变得可用或改变时调用的回调。 |
class |
MediaRouteProvider.ProviderMetadata 描述路由提供者实现的属性。 |
class |
MediaRouteProvider.RouteController 提供对特定路线的控制。 |
Public constructors |
|
---|---|
MediaRouteProvider(Context context) 创建媒体路由提供程序。 |
Public methods |
|
---|---|
final Context |
getContext() 获取媒体路由提供程序的上下文。 |
final MediaRouteProviderDescriptor |
getDescriptor() 获取提供者的描述符。 |
final MediaRouteDiscoveryRequest |
getDiscoveryRequest() 获取当前的发现请求,通知提供者有关要发现的路由类型以及是否执行主动扫描。 |
final Handler |
getHandler() 获取与主线程关联的提供程序处理程序。 |
final MediaRouteProvider.ProviderMetadata |
getMetadata() 获取有关提供者实现的一些元数据。 |
MediaRouteProvider.RouteController |
onCreateRouteController(String routeId) 由媒体路由器调用以获取特定路由的路由控制器。 |
void |
onDiscoveryRequestChanged(MediaRouteDiscoveryRequest request) 当 |
final void |
setCallback(MediaRouteProvider.Callback callback) 设置提供程序的描述符更改时要调用的回调。 |
final void |
setDescriptor(MediaRouteProviderDescriptor descriptor) 设置提供者的描述符。 |
final void |
setDiscoveryRequest(MediaRouteDiscoveryRequest request) 设置发现请求以通知提供商其客户想要发现的路由种类以及是否执行主动扫描。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
MediaRouteProvider (Context context)
创建媒体路由提供程序。
Parameters | |
---|---|
context |
Context : The context. |
MediaRouteProviderDescriptor getDescriptor ()
获取提供者的描述符。
描述符描述了媒体路由提供者的状态以及它发布的路由。 通过注册callback
和setCallback(MediaRouteProvider.Callback)
, setCallback(MediaRouteProvider.Callback)
描述符的变化。
Returns | |
---|---|
MediaRouteProviderDescriptor |
The media route provider descriptor, or null if none. |
MediaRouteDiscoveryRequest getDiscoveryRequest ()
获取当前的发现请求,通知提供者有关要发现的路由类型以及是否执行主动扫描。
Returns | |
---|---|
MediaRouteDiscoveryRequest |
The current discovery request, or null if no discovery is needed at this time. |
MediaRouteProvider.ProviderMetadata getMetadata ()
获取有关提供者实现的一些元数据。
Returns | |
---|---|
MediaRouteProvider.ProviderMetadata |
MediaRouteProvider.RouteController onCreateRouteController (String routeId)
由媒体路由器调用以获取特定路由的路由控制器。
当不再需要路由控制器释放其资源时,媒体路由器将调用路由控制器的 onRelease()
方法。
Parameters | |
---|---|
routeId |
String : The unique id of the route. |
Returns | |
---|---|
MediaRouteProvider.RouteController |
The route controller. Returns null if there is no such route or if the route cannot be controlled using the route controller interface. |
void onDiscoveryRequestChanged (MediaRouteDiscoveryRequest request)
当 discovery request
发生变化时,由媒体路由器调用。
每当应用程序调用 addCallback(MediaRouteSelector, MediaRouter.Callback)
来注册回调时,它还提供了一个选择器来指定它感兴趣的路线种类。媒体路由器将所有这些选择器组合在一起以生成一个 MediaRouteDiscoveryRequest
并在通过调用发生更改时通知每个提供者 setDiscoveryRequest(MediaRouteDiscoveryRequest)
发布消息以异步调用此方法。
提供程序应检查发现请求media control categories
中的selector
以确定应该尝试发现哪些路由以及它是否应执行主动或被动扫描。 在很多情况下,供应商可以通过确定选择器不包含任何支持的类别来节省电力,因此可以避免执行任何扫描。
Parameters | |
---|---|
request |
MediaRouteDiscoveryRequest : The new discovery request, or null if no discovery is needed at this time. |
void setCallback (MediaRouteProvider.Callback callback)
设置提供程序的描述符更改时要调用的回调。
Parameters | |
---|---|
callback |
MediaRouteProvider.Callback : The callback to use, or null if none. |
void setDescriptor (MediaRouteProviderDescriptor descriptor)
设置提供者的描述符。
提供者必须调用此方法来通知当前注册的 callback
有关对提供者描述符的更改。
Parameters | |
---|---|
descriptor |
MediaRouteProviderDescriptor : The updated route provider descriptor, or null if none. |
void setDiscoveryRequest (MediaRouteDiscoveryRequest request)
设置发现请求以通知提供商其客户想要发现的路由种类以及是否执行主动扫描。
Parameters | |
---|---|
request |
MediaRouteDiscoveryRequest : The discovery request, or null if no discovery is needed at this time. |