A singleton class containing global context for the Cast SDK. The shared instance can be
accessed by calling
getSharedInstance(Context)
. To properly initialize CastContext
,
the application must have a class that implements OptionsProvider
interface:
package com.example.app; public class CastOptionsProvider implements OptionsProvider { @Override public CastOptions getCastOptions(Context appContext) { ... } }and specify its fully qualified class name in the AndroidManifest.xml with the key
OPTIONS_PROVIDER_CLASS_NAME_KEY
:
... <meta-data android:name="com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME" android:value="com.example.app.CastOptionsProvider" /> ...All public methods must be called from the main thread.
Constant Summary
String | OPTIONS_PROVIDER_CLASS_NAME_KEY | The metadata key to specify the fully qualified
name of the OptionsProvider
implementation in the AndroidManifest.xml. |
Public Method Summary
void |
addAppVisibilityListener(AppVisibilityListener
listener)
This method is deprecated. Don't use the SDK to listen to app visibility
changes. Use alternative ways for watching activity lifecycle changes such as
by overriding
Activity
lifecycle change methods, or by using
Application.ActivityLifecycleCallbacks .
|
void |
addCastStateListener(CastStateListener
listener)
Adds a
CastStateListener to monitor changes of the current CastState .
|
CastOptions |
getCastOptions()
Returns the
CastOptions .
|
int |
getCastState()
Returns the current
CastState .
|
MediaNotificationManager |
getMediaNotificationManager()
Returns the
MediaNotificationManager .
|
MediaRouteSelector |
getMergedSelector()
Returns the merged
MediaRouteSelector
used for discovering devices and deciding whether to show the MediaRouteButton.
|
PrecacheManager |
getPrecacheManager()
Returns the
PrecacheManager .
|
SessionManager |
getSessionManager()
Returns the
SessionManager ,
never returns null .
|
static CastContext | |
static CastContext |
getSharedInstance()
Returns the shared instance of
CastContext .
|
boolean |
isAppVisible()
This method is deprecated. To check app visibility changes, use alternative
ways to watch activity lifecycle changes, such as overriding
Activity
lifecycle change methods or using
Application.ActivityLifecycleCallbacks .
|
boolean |
onDispatchVolumeKeyEventBeforeJellyBean(KeyEvent
event)
If your application supports SDK versions before JELLY BEAN, you should call
this method to delegate the handling of physical volume key events to the SDK
so that users can use the physical volume keys to control device volume of the
Cast receiver.
|
void |
removeAppVisibilityListener(AppVisibilityListener
listener)
This method is deprecated. Don't use the SDK to listen to app visibility
changes. Use alternative ways for watching activity lifecycle changes such as
by overriding
Activity
lifecycle change methods, or by using
Application.ActivityLifecycleCallbacks .
|
void | |
void |
Inherited Method Summary
Constants
public static final String OPTIONS_PROVIDER_CLASS_NAME_KEY
The metadata key to specify the fully qualified name of the OptionsProvider
implementation in the AndroidManifest.xml.
Public Methods
public void addAppVisibilityListener (AppVisibilityListener listener)
This method is deprecated.
Don't use the SDK to listen to app visibility changes. Use alternative ways for watching
activity lifecycle changes such as by overriding Activity
lifecycle change methods, or by using
Application.ActivityLifecycleCallbacks
.
Adds an AppVisibilityListener
to listen for UI visibility events.
Throws
IllegalStateException | If this method is not called on the main thread. |
---|---|
NullPointerException | If listener is null . |
public void addCastStateListener (CastStateListener listener)
Adds a CastStateListener
to monitor changes of the current CastState
.
Throws
IllegalStateException | If this method is not called on the main thread. |
---|---|
NullPointerException | If listener is null . |
public CastOptions getCastOptions ()
Returns the CastOptions
.
Throws
IllegalStateException | If this method is not called on the main thread. |
---|
public int getCastState ()
Returns the current CastState
.
Throws
IllegalStateException | If this method is not called on the main thread. |
---|
public MediaNotificationManager getMediaNotificationManager ()
Returns the
MediaNotificationManager
.
Throws
IllegalStateException | If this method is not called on the main thread. |
---|
public MediaRouteSelector getMergedSelector ()
Returns the merged MediaRouteSelector
used for discovering devices and deciding whether to show the MediaRouteButton. This
selector is merged with any additional SessionProvider
s
that might be registered with the CastContext.
Throws
IllegalStateException | If this method is not called on the main thread. |
---|
public PrecacheManager getPrecacheManager ()
Returns the PrecacheManager
.
public SessionManager getSessionManager ()
Returns the SessionManager
,
never returns null
.
Throws
IllegalStateException | If this method is not called on the main thread. |
---|
public static CastContext getSharedInstance (Context context)
Returns a shared instance of CastContext
.
The shared instance will be initialized on the first time this method is called.
Parameters
context | An application Context .
If this is not an application Context ,
getApplicationContext() will be called on the given context, to retrieve
it. |
---|
Throws
IllegalStateException |
If
|
---|
public static CastContext getSharedInstance ()
Returns the shared instance of CastContext
.
This method must be called after CastContext
is initialized through
getSharedInstance(Context)
. Otherwise, this method will return
null
.
Throws
IllegalStateException | If this method is not called on the main thread. |
---|
public boolean isAppVisible ()
This method is deprecated.
To check app visibility changes, use alternative ways to watch activity lifecycle
changes, such as overriding Activity
lifecycle change methods or using
Application.ActivityLifecycleCallbacks
.
Returns true
if the application is visible.
Throws
IllegalStateException | If this method is not called on the main thread. |
---|
public boolean onDispatchVolumeKeyEventBeforeJellyBean (KeyEvent event)
If your application supports SDK versions before JELLY BEAN, you should call this
method to delegate the handling of physical volume key events to the SDK so that users
can use the physical volume keys to control device volume of the Cast receiver. Clients
should override
dispatchKeyEvent(KeyEvent)
and call this method:
@Override public boolean dispatchKeyEvent(KeyEvent event) { return CastContext.getSharedInstance().onDispatchVolumeKeyEventBeforeJellyBean(event) || super.dispatchKeyEvent(event); }The amount of volume delta to increase or decrease is set through
setVolumeDeltaBeforeIceCreamSandwich(double)
. This method is a no-op on
platform JELLY BEAN and above.
Parameters
event | The dispatched event. |
---|
public void removeAppVisibilityListener (AppVisibilityListener listener)
This method is deprecated.
Don't use the SDK to listen to app visibility changes. Use alternative ways for watching
activity lifecycle changes such as by overriding Activity
lifecycle change methods, or by using
Application.ActivityLifecycleCallbacks
.
Removes an AppVisibilityListener
.
Throws
IllegalStateException | If this method is not called on the main thread. |
---|
public void removeCastStateListener (CastStateListener listener)
Removes a CastStateListener
.
Throws
IllegalStateException | If this method is not called on the main thread. |
---|
public void setReceiverApplicationId (String applicationId)
Sets the receiver application ID. This overrides the receiver application ID
specified in CastOptions
.
Calling this method will result in the receiver ID used for discovery and application launch being changed. The Cast button status will also changed accordingly. If the new application ID is different than the current one, the current session will be ended if there is any.
Specifying null or an empty string indicates that the app does not want to discover receiver devices or launch a receiver application.
For discovering for multiple application IDs at the same time, or for discovering
for other application ID without affect the current session, use MediaRouter
APIs instead.
Parameters
applicationId | The receiver application ID that will be used to discover the receiver device and launch the receiver application. |
---|
Throws
IllegalStateException | If this method is not called on the main thread. |
---|