Most visited

Recently visited

Added in API level 21

MediaBrowserService

public abstract class MediaBrowserService
extends Service

java.lang.Object
   ↳ android.content.Context
     ↳ android.content.ContextWrapper
       ↳ android.app.Service
         ↳ android.service.media.MediaBrowserService


媒体浏览服务的基类。

媒体浏览服务使应用程序能够浏览应用程序提供的媒体内容,并要求应用程序开始播放。 它们也可能用于控制已经通过MediaSession播放的内容。

To extend this class, you must declare the service in your manifest file with an intent filter with the SERVICE_INTERFACE action. For example:

 <service android:name=".MyMediaBrowserService"
          android:label="@string/service_name" >
     <intent-filter>
         <action android:name="android.media.browse.MediaBrowserService" />
     </intent-filter>
 </service>
 

Summary

Nested classes

class MediaBrowserService.BrowserRoot

包含浏览器服务首次连接时需要发送给客户端的信息。

class MediaBrowserService.Result<T>

MediaBrowserService异步回调方法的完成处理程序。

Constants

String SERVICE_INTERFACE

必须声明为由服务处理的 Intent

Inherited constants

From class android.app.Service
From class android.content.Context
From interface android.content.ComponentCallbacks2

Public constructors

MediaBrowserService()

Public methods

void dump(FileDescriptor fd, PrintWriter writer, String[] args)

将服务的状态打印到给定的流中。

final Bundle getBrowserRootHints()

获取当前连接的 MediaBrowser发送的根提示。

MediaSession.Token getSessionToken()

获取会话标记,如果尚未创建或已销毁它,则为null。

void notifyChildrenChanged(String parentId, Bundle options)

通知所有连接的媒体浏览器,指定的父ID的子项以某种方式发生了变化。

void notifyChildrenChanged(String parentId)

通知所有连接的媒体浏览器,指定的父ID的子项以某种方式发生了变化。

IBinder onBind(Intent intent)

将通信信道返回给服务。

void onCreate()

服务第一次创建时由系统调用。

abstract MediaBrowserService.BrowserRoot onGetRoot(String clientPackageName, int clientUid, Bundle rootHints)

调用以获取特定客户端浏览的根信息。

abstract void onLoadChildren(String parentId, Result<List<MediaBrowser.MediaItem>> result)

打电话来获取有关媒体项目的孩子的信息。

void onLoadChildren(String parentId, Result<List<MediaBrowser.MediaItem>> result, Bundle options)

打电话来获取有关媒体项目的孩子的信息。

void onLoadItem(String itemId, Result<MediaBrowser.MediaItem> result)

打电话获取有关特定媒体项目的信息。

void setSessionToken(MediaSession.Token token)

呼叫设置媒体会话。

Inherited methods

From class android.app.Service
From class android.content.ContextWrapper
From class android.content.Context
From class java.lang.Object
From interface android.content.ComponentCallbacks2
From interface android.content.ComponentCallbacks

Constants

SERVICE_INTERFACE

Added in API level 21
String SERVICE_INTERFACE

Intent必须声明为由服务处理。

常量值:“android.media.browse.MediaBrowserService”

Public constructors

MediaBrowserService

Added in API level 21
MediaBrowserService ()

Public methods

dump

Added in API level 21
void dump (FileDescriptor fd, 
                PrintWriter writer, 
                String[] args)

将服务的状态打印到给定的流中。 如果您运行“adb shell dumpsys activity service <yourservicename>”(注意,要使此命令生效,服务必须正在运行,并且您必须指定完全限定的服务名称),则会调用此命令。 这与“dumpsys <servicename>”不同,后者仅适用于命名系统服务,并在使用ServiceManager注册的IBinder接口上调用dump(FileDescriptor, String[])方法。

Parameters
fd FileDescriptor: The raw file descriptor that the dump is being sent to.
writer PrintWriter: The PrintWriter to which you should dump your state. This will be closed for you after you return.
args String: additional arguments to the dump request.

getBrowserRootHints

Added in API level 24
Bundle getBrowserRootHints ()

获取当前连接的MediaBrowser发送的根提示。 根连接提示是在连接并检索用于浏览的根ID时发送到媒体浏览器服务的可选包中包含的特定于服务的参数,如果不包含,则返回null。 此包的内容可能会影响浏览时返回的信息。

Returns
Bundle
Throws
IllegalStateException If this method is called outside of onLoadChildren(String, MediaBrowserService.Result >) or onLoadItem(String, MediaBrowserService.Result )

也可以看看:

getSessionToken

Added in API level 21
MediaSession.Token getSessionToken ()

获取会话标记,如果尚未创建或已销毁它,则为null。

Returns
MediaSession.Token

notifyChildrenChanged

Added in API level 24
void notifyChildrenChanged (String parentId, 
                Bundle options)

通知所有连接的媒体浏览器,指定的父ID的子项以某种方式发生了变化。 这将导致浏览器再次获取订阅的内容。

Parameters
parentId String: The id of the parent media item whose children changed.
options Bundle: A bundle of service-specific arguments to send to the media browse. The contents of this bundle may contain the information about the change.

notifyChildrenChanged

Added in API level 21
void notifyChildrenChanged (String parentId)

通知所有连接的媒体浏览器,指定的父ID的子项以某种方式发生了变化。 这将导致浏览器再次获取订阅的内容。

Parameters
parentId String: The id of the parent media item whose children changed.

onBind

Added in API level 21
IBinder onBind (Intent intent)

将通信信道返回给服务。 如果客户端无法绑定到服务,可能会返回null。 返回IBinder通常是一个复杂的界面已经described using aidl

请注意,与其他应用程序组件不同,此处返回的IBinder接口调用可能不会发生在进程的主线程上 有关主线程的更多信息可以在Processes and Threads中找到。

Parameters
intent Intent: The Intent that was used to bind to this service, as given to Context.bindService. Note that any extras that were included with the Intent at that point will not be seen here.
Returns
IBinder Return an IBinder through which clients can call on to the service.

onCreate

Added in API level 21
void onCreate ()

服务第一次创建时由系统调用。 不要直接调用这个方法。

onGetRoot

Added in API level 21
MediaBrowserService.BrowserRoot onGetRoot (String clientPackageName, 
                int clientUid, 
                Bundle rootHints)

调用以获取特定客户端浏览的根信息。

实施应验证客户端软件包是否有权访问浏览媒体信息,然后才能返回根ID; 如果客户端不被允许访问这些信息,它应该返回null。

Parameters
clientPackageName String: The package name of the application which is requesting access to browse media.
clientUid int: The uid of the application which is requesting access to browse media.
rootHints Bundle: An optional bundle of service-specific arguments to send to the media browse service when connecting and retrieving the root id for browsing, or null if none. The contents of this bundle may affect the information returned when browsing.
Returns
MediaBrowserService.BrowserRoot The MediaBrowserService.BrowserRoot for accessing this app's content or null.

也可以看看:

onLoadChildren

Added in API level 21
void onLoadChildren (String parentId, 
                Result<List<MediaBrowser.MediaItem>> result)

打电话来获取有关媒体项目的孩子的信息。

实现必须使用儿童列表调用result.sendResult 如果加载孩子将是一个昂贵的操作,应该在另一个线程上执行, result.detach可以在从此函数返回之前调用result.sendResult ,然后在加载完成时调用result.sendResult

如果媒体项目没有任何子项,请使用空列表呼叫sendResult(T) 当给定的parentId无效时,实现必须调用result.sendResultnull ,这将调用onError(String)

Parameters
parentId String: The id of the parent media item whose children are to be queried.
result Result: The Result to send the list of children to.

onLoadChildren

Added in API level 24
void onLoadChildren (String parentId, 
                Result<List<MediaBrowser.MediaItem>> result, 
                Bundle options)

打电话来获取有关媒体项目的孩子的信息。

实现必须使用子列表调用result.sendResult 如果加载孩子将是一个昂贵的操作,应该在另一个线程上执行, result.detach可以在从此函数返回之前调用result.sendResult ,然后在加载完成时调用result.sendResult

如果媒体项目没有任何孩子,请拨打sendResult(T) ,并列出一个空白列表。 当给定的parentId无效时,实现必须调用result.sendResultnull ,这将调用onError(String)

Parameters
parentId String: The id of the parent media item whose children are to be queried.
result Result: The Result to send the list of children to.
options Bundle: A bundle of service-specific arguments sent from the media browse. The information returned through the result should be affected by the contents of this bundle.

onLoadItem

Added in API level 23
void onLoadItem (String itemId, 
                Result<MediaBrowser.MediaItem> result)

打电话获取有关特定媒体项目的信息。

实现必须调用result.sendResult 如果加载项目将是一个昂贵的操作, result.detach可能会在从此函数返回之前调用result.sendResult ,然后在加载项目时调用result.sendResult

当给定的 itemId无效时,实现必须调用 result.sendResultnull ,这将调用 onError(String)

默认实现调用 result.sendResultnull

Parameters
itemId String: The id for the specific MediaBrowser.MediaItem.
result Result: The Result to send the item to.

setSessionToken

Added in API level 21
void setSessionToken (MediaSession.Token token)

呼叫设置媒体会话。

这应该在服务启动期间尽快调用。 它只能被调用一次。

Parameters
token MediaSession.Token: The token for the service's MediaSession.

Hooray!