Automotive开发者参考
Automotive开发者参考
    
    
    
以下工具可以帮助您实现一些Automotive特有的功能。
开发者工具和提示
触摸模式
 注意: 有关如何在Fire TV上实现触摸的详细信息,请参阅为Fire TV添加触摸。
用户触摸设备后,就会进入触摸模式。以下工具用于使用触摸模式进行交互。
检测触摸模式
Android提供了多种检测触摸模式的方法:
- 
    
View.IsInTouchMode()- 此方法属于View类,可以判断设备当前是否处于触摸模式。 focusableInTouchMode:false- 此属性对于任何查看状态都可以通过XML来设置,也可以通过setFocusableInTouchMode (false)方法来设置。ViewTreeObserver.OnTouchModeChangeListener- Android提供了用于侦听触摸模式来回变化情况的API,如有需要,可用于更改UI。
侦听触摸模式变化
以下是侦听触摸模式更改的方法:
view.getViewTreeObserver().addOnTouchModeChangeListener(
    new ViewTreeObserver.OnTouchModeChangeListener() {
        @Override
        public void onTouchModeChanged(boolean b) {
            // 关于触摸模式变化
        }
    });
颜色选项
您可以根据查看状态来选择不同的颜色。提供了以下查看状态:
- 已激活
 - 已聚焦
 - 已选择
 
其他开发者提示
- 用户在该应用中下载某个项目后,即可通过Automotive SDK将此信息传递至新的Fire TV Downloader应用(见下一部分所述)。这是为了在Fire TV UI(应用外部)中显示内容,以便轻松访问内容并提升应用的用户参与度。
 - 用户在应用中删除已下载项目后,通过该SDK向Fire TV传递此信息,这样客户就不会再在Fire TV UI(应用外部)中看到此项目。
 - 用户在RSE(后排座椅娱乐系统)上使用API开始/暂停/继续/停止播放某个项目时,更新当前正在播放的项目和播放状态。
 
Automotive SDK实现
应用开发者可以使用Automotive SDK来集成Fire TV家庭版无法提供的Automotive功能。这些功能包括:
- 在Fire TV UI中发布/管理已下载的内容
 - 更新前排座椅控制系统的播放状态
 
下载项目
添加已下载项目
可以使用addDownloadedItem方法添加下载项:
/**
 * 完成项目下载之后,
 * 使用此方法可向设备下载项中添加已下载的项目。
 *
 * @param downloadedItem - 已下载项目的媒体元数据对象
 * @param launchIntent - 启动已下载项目的Intent
 * @param deleteIntent - 从设备下载项中删除已下载项目的Intent。
 *                       此Intent启动之后,
 *                       应从设备应上删除已下载的项目
 */
public void addDownloadedItem (MediaMetadata downloadedItem,
    Intent launchIntent, Intent deleteIntent)
| 参数 | 描述 | 
|---|---|
MediaMetadata downloadedItem | 
        显示下载项行/前排座椅控制系统/下载管理页面中的详细信息。其中包括:
            
  | 
    
launchIntent | 
        从下载项行/前排座椅控制系统/下载管理页面中启动项目。可以启动应用内详情页面或播放器。 | 
deleteIntent | 
        将已下载项目从应用中移除(下载项行/下载管理页面中的快捷菜单项)。 | 
移除下载项目
removeDownloadedItem可以帮您移除已下载项目:
/**
 * 从应用中删除某个已下载项目后,
 * 使用此方法从设备下载项中删除该项目。
 *
 * @param itemId - 用于标识已下载项目的ID
 */
public void removeDownloadedItem (String itemId)
项目ID(itemId)用于标识要从下载项行/前排座椅控制系统/下载管理页面中删除的项目。
更新播放状态
使用updatePlaybackStatus方法来更新播放应用的播放状态:
/** 
 * 使用此方法来更新此设备上当前播放的媒体 
 *
 * @param metadata - 当前播放内容的MediaMetadata对象 
 * @param state - 内容的当前播放状态 
 * @param currentPlaybackTime - 当前播放时间 
 */
public void updatePlaybackStatus (MediaMetadata metadata,
    PlaybackState state, long currentPlaybackTime)
| 参数 | 描述 | 
|---|---|
MediaMetadata metadata | 
        显示前排座椅控制系统的详细信息。这些详细信息可能包括:
            
  | 
    
PlaybackState state | 
        提供以下播放状态: 播放中、已暂停、已停止和已开始。 | 
currentPlaybackTime | 
        当前播放时间。 | 

