public final class TvInputManager
extends Object
java.lang.Object | |
↳ | android.media.tv.TvInputManager |
整个电视输入框架(TIF)架构的中央系统API,用于仲裁应用程序和所选电视输入之间的交互。 您可以使用Context.getSystemService(Context.TV_INPUT_SERVICE)
检索此接口的实例。
电视输入框架(TIF)架构涉及三个主要参与方:
TvInputService
represents an input source of TV, which can be a pass-through input such as HDMI, or a tuner input which provides broadcast TV programs. The system binds to the TV input per application’s request. on implementing TV inputs. TvView
or TvRecordingClient
for further interaction such as watching and recording broadcast TV programs. Nested classes |
|
---|---|
class |
TvInputManager.TvInputCallback 回叫用于监视电视输入的状态。 |
Public methods |
|
---|---|
int |
getInputState(String inputId) 返回给定电视输入的状态。 |
TvInputInfo |
getTvInputInfo(String inputId) 针对给定的电视输入返回 |
List<TvInputInfo> |
getTvInputList() 返回系统上电视输入的完整列表。 |
boolean |
isParentalControlsEnabled() 返回用户的家长控制启用状态。 |
boolean |
isRatingBlocked(TvContentRating rating) 检查给定的电视内容分级是否被用户阻止。 |
void |
registerCallback(TvInputManager.TvInputCallback callback, Handler handler) |
void |
unregisterCallback(TvInputManager.TvInputCallback callback) 取消注册现有的 |
void |
updateTvInputInfo(TvInputInfo inputInfo) 更新现有电视输入的 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
String ACTION_BLOCKED_RATINGS_CHANGED
当用户阻止内容分级更改时广播意图操作。 用于isRatingBlocked(TvContentRating)
。
常量值:“android.media.tv.action.BLOCKED_RATINGS_CHANGED”
String ACTION_PARENTAL_CONTROLS_ENABLED_CHANGED
父母控制启用状态更改时的广播意图操作。 用于isParentalControlsEnabled()
。
常量值:“android.media.tv.action.PARENTAL_CONTROLS_ENABLED_CHANGED”
String ACTION_QUERY_CONTENT_RATING_SYSTEMS
广播意图操作用于查询可用的内容评级系统。
电视输入管理器服务通过查询为此动作注册的广播接收器来定位可用内容分级系统。 应用程序可以通过在其清单中声明合适的广播接收器来向用户提供额外的内容评级系统。
以下是广播接收器声明的一个示例,应用程序可能在其AndroidManifest.xml文件中包含广告来宣传自定义内容分级系统。 元数据指定一个资源,该资源包含应用程序提供的每个内容评级系统的描述。
<receiver android:name=".TvInputReceiver"> <intent-filter> <action android:name= "android.media.tv.action.QUERY_CONTENT_RATING_SYSTEMS" /> </intent-filter> <meta-data android:name="android.media.tv.metadata.CONTENT_RATING_SYSTEMS" android:resource="@xml/tv_content_rating_systems" /> </receiver>
在上面的示例中, @xml/tv_content_rating_systems
资源引用其根元素为<rating-system-definitions>
的XML资源,其中包含零个或多个<rating-system-definition>
元素。 每个<rating-system-definition>
元素都指定特定内容评级系统的评级,子评级和评级顺序。
也可以看看:
常量值:“android.media.tv.action.QUERY_CONTENT_RATING_SYSTEMS”
String ACTION_SETUP_INPUTS
用于设置通道源的活动动作, TYPE_TUNER
类型的电视输入。 当被调用时,系统将显示适当的用户界面,以启动每个电视输入服务setupActivity
提供的单独设置流程。
常量值:“android.media.tv.action.SETUP_INPUTS”
int INPUT_STATE_CONNECTED
状态为 getInputState(String)
和 onInputStateChanged(String, int)
:输入源已连接。
此状态表示源设备连接到输入端口并处于正常操作模式。 它主要与HDMI输入等硬件输入相关。 这是任何其状态未知的硬件输入的默认状态。 非硬件输入始终处于连接状态。
常量值:0(0x00000000)
int INPUT_STATE_CONNECTED_STANDBY
状态为 getInputState(String)
和 onInputStateChanged(String, int)
:输入源已连接,但处于待机模式。
此状态表示源设备连接到输入端口,但处于待机模式。 它主要与HDMI输入等硬件输入相关。
常数值:1(0x00000001)
int INPUT_STATE_DISCONNECTED
状态为 getInputState(String)
和 onInputStateChanged(String, int)
:输入源断开。
此状态表示源设备与输入端口断开连接。 它主要与HDMI输入等硬件输入相关。
常量值:2(0x00000002)
String META_DATA_CONTENT_RATING_SYSTEMS
内容分级系统元数据与 ACTION_QUERY_CONTENT_RATING_SYSTEMS
相关联。
指定描述应用程序提供的内容分级系统的XML资源的资源ID。
常量值:“android.media.tv.metadata.CONTENT_RATING_SYSTEMS”
int RECORDING_ERROR_INSUFFICIENT_SPACE
notifyError(int)
和 onError(int)
错误:由于存储空间不足,无法继续录制。
常数值:1(0x00000001)
int RECORDING_ERROR_RESOURCE_BUSY
notifyError(int)
和 onError(int)
错误:录制无法继续,因为无法分配所需的录制资源。
常量值:2(0x00000002)
int RECORDING_ERROR_UNKNOWN
notifyError(int)
和 onError(int)
错误:由于不符合任何其他错误代码的问题而无法完成请求的操作,或者在高于应用程序的 android:targetSdkVersion
版本上定义了问题的错误代码。
常量值:0(0x00000000)
long TIME_SHIFT_INVALID_TIME
当时移尚未开始时,由 onTimeShiftGetCurrentPosition()
和 onTimeShiftGetStartPosition()
返回的值。
常量值:-9223372036854775808(0x8000000000000000)
int TIME_SHIFT_STATUS_AVAILABLE
状态为notifyTimeShiftStatusChanged(int)
和onTimeShiftStatusChanged(String, int)
:时间转换目前可用。 在此状态下,应用程序假定它可以暂停/恢复播放,寻找指定的时间位置并设置播放速率和音频模式。
常量值:3(0x00000003)
int TIME_SHIFT_STATUS_UNAVAILABLE
notifyTimeShiftStatusChanged(int)
和 onTimeShiftStatusChanged(String, int)
状态:时间平移当前不可用,但可能稍后再次运行。
常量值:2(0x00000002)
int TIME_SHIFT_STATUS_UNKNOWN
状态为notifyTimeShiftStatusChanged(int)
和onTimeShiftStatusChanged(String, int)
:未知状态。 也是致电notifyTimeShiftStatusChanged
之前的状态。
常量值:0(0x00000000)
int TIME_SHIFT_STATUS_UNSUPPORTED
notifyTimeShiftStatusChanged(int)
和 onTimeShiftStatusChanged(String, int)
状态:当前电视输入不支持时移。
常数值:1(0x00000001)
int VIDEO_UNAVAILABLE_REASON_AUDIO_ONLY
notifyVideoUnavailable(int)
和 onVideoUnavailable(String, int)
原因:视频不可用,因为当前的电视节目是纯音频。
常量值:4(0x00000004)
int VIDEO_UNAVAILABLE_REASON_BUFFERING
notifyVideoUnavailable(int)
和 onVideoUnavailable(String, int)
原因:视频不可用,因为相应的电视输入暂时停止播放以缓冲更多数据。
常量值:3(0x00000003)
int VIDEO_UNAVAILABLE_REASON_TUNING
notifyVideoUnavailable(int)
和 onVideoUnavailable(String, int)
原因:视频不可用,因为相应的电视输入正在调谐到新频道。
常数值:1(0x00000001)
int VIDEO_UNAVAILABLE_REASON_UNKNOWN
notifyVideoUnavailable(int)
和 onVideoUnavailable(String, int)
原因:由于未指定的错误,视频不可用。
常量值:0(0x00000000)
int VIDEO_UNAVAILABLE_REASON_WEAK_SIGNAL
notifyVideoUnavailable(int)
和 onVideoUnavailable(String, int)
原因:视频因电视信号微弱而不可用。
常量值:2(0x00000002)
int getInputState (String inputId)
返回给定电视输入的状态。
该州是以下之一:
Parameters | |
---|---|
inputId |
String : The ID of the TV input. |
Returns | |
---|---|
int |
Throws | |
---|---|
IllegalArgumentException |
if the argument is null . |
TvInputInfo getTvInputInfo (String inputId)
针对给定的电视输入返回 TvInputInfo
。
Parameters | |
---|---|
inputId |
String : The ID of the TV input. |
Returns | |
---|---|
TvInputInfo |
the TvInputInfo for a given TV input. null if not found. |
List<TvInputInfo> getTvInputList ()
返回系统上电视输入的完整列表。
Returns | |
---|---|
List<TvInputInfo> |
List of TvInputInfo for each TV input that describes its meta information. |
boolean isParentalControlsEnabled ()
返回用户的家长控制启用状态。
Returns | |
---|---|
boolean |
true if the user enabled the parental controls, false otherwise. |
boolean isRatingBlocked (TvContentRating rating)
检查给定的电视内容分级是否被用户阻止。
Parameters | |
---|---|
rating |
TvContentRating : The TV content rating to check. Can be UNRATED . |
Returns | |
---|---|
boolean |
true if the given TV content rating is blocked, false otherwise. |
void registerCallback (TvInputManager.TvInputCallback callback, Handler handler)
注册一个 TvInputManager.TvInputCallback
。
Parameters | |
---|---|
callback |
TvInputManager.TvInputCallback : A callback used to monitor status of the TV inputs. |
handler |
Handler : A Handler that the status change will be delivered to. |
void unregisterCallback (TvInputManager.TvInputCallback callback)
取消注册现有的 TvInputManager.TvInputCallback
。
Parameters | |
---|---|
callback |
TvInputManager.TvInputCallback : The existing callback to remove. |
void updateTvInputInfo (TvInputInfo inputInfo)
更新现有电视输入的TvInputInfo
。 电视输入设备服务的实现可以调用此方法通过应用程序和系统向上最新TvInputInfo
对象描述本身。
系统根据从AndroidManifest.xml
收集的信息自动为每个电视输入创建一个TvInputInfo
对象,因此不必调用此方法,除非此类信息已动态更改。 使用TvInputInfo.Builder
构建新的TvInputInfo
对象。
试图改变关于调用软件包不拥有的电视输入的信息不做任何事情。
Parameters | |
---|---|
inputInfo |
TvInputInfo : The TvInputInfo object that contains new information. |
Throws | |
---|---|
IllegalArgumentException |
if the argument is null . |