开发者控制台

常见问题解答

常见问题解答 (Fire TV)

一般问题

问: 我的应用是否可以在亚马逊Fire TV平台上运行?
确保您的应用与亚马逊Fire TV设备的规格兼容。请参阅设备规格,了解详细的设备和功能规格。

您的应用必须符合亚马逊应用商店内容政策。亚马逊还建议您自行测试应用。如发现任何问题,请提交更新。

问: 如何向亚马逊Fire TV平台提交我的应用?
向亚马逊Fire TV设备提交应用前,请在亚马逊应用和游戏开发者门户上创建一个账户,然后通过该门户提交应用。

如果已在亚马逊上发布了应用,请更新并加入适用于亚马逊Fire TV的单独APK。有关更多信息,请参阅使用设备定向

问: 如何确定我的应用是否在亚马逊Fire TV设备上运行?
可以检查amazon.hardware.fire_tv功能。如须查找具体的Fire TV型号,可以检查型号或模式,但须始终包含amazon.hardware.fire_tv功能的回退。欲了解更多信息,请参阅识别亚马逊Fire TV设备
问: 可以将我的应用侧载到亚马逊Fire TV上进行测试吗?
可以。请使用Android调试桥(ADB)。欲了解更多信息,请参阅开发Fire TV应用和游戏入门
问: 是否有可供开发者使用的亚马逊Fire TV测试设备?
亚马逊不为开发者提供测试设备。

可从美国英国德国的亚马逊零售网站上购买亚马逊Fire TV设备。查看商品详情页面,了解特定国家/地区的供货情况。

问: 亚马逊Fire TV平台支持哪些特定功能?
请参阅设备规格,了解详细的设备和功能规格。Fire TV是基于Android系统的,几乎包含了Android系统的所有功能。一些示例包括DRM、音频/视频编解码器以及DIAL
问: 哪些应用模板可用于快速构建Fire TV应用?
可以使用Fire App Builder作为构建Fire TV应用的基础模板。
问: 如何在亚马逊Fire TV平台上销售我的应用?
要推广您的应用,请参阅开发者促销控制台
问: 在什么情况下应该暂停视频播放,如何实现?
当按下其中一个Fire TV遥控器或Amazon Fire游戏控制器上的麦克风(语音搜索)或主页按钮时,视频播放将暂停(请参阅遥控输入)。“后退”按钮也会暂停当前活动,并恢复堆栈上的前一个活动,该活动可能是也可能不是您的应用。

要处理暂停行为,在活动中执行onPause()方法(与执行其他Android应用一样)。执行onPause()方法时,请确保已保存用户状态或位置,以便当应用恢复时,用户处于暂停前的相同位置。

此外,媒体应用须满足以下要求:

  • 播放视频的应用应暂停播放,并且必须在暂停时立即释放所有媒体资源(如解码器),因为这些有限的资源是基于硬件的,并且内存有限。详细信息,请参阅释放MediaPlayerMediaPlayer.release
  • 播放音频的应用可在暂停后继续播放,但如有其他应用要求,则必须放弃音频焦点。有关详细信息,请参阅管理音频焦点(Android文档)
问: 我可以在Fire TV应用中使用亚马逊应用内购买API吗?
可以,亚马逊的应用内购买 (IAP) API适用于所有Fire TV设备,以及Fire TV遥控器和游戏控制器。对于网页应用,可以使用App Tester来预览您的交易。
问: 我可以在我的Fire TV应用中使用Amazon Device Messaging (ADM)吗?
可以使用Amazon Device Messaging接收推送消息和其他数据。
问: 我可以在我的Fire TV应用中使用Amazon Maps API吗?
亚马逊Fire TV没有定位服务,因此不支持Amazon Maps API
问: 我可以链接到亚马逊应用商店中我的应用详情页面吗?
是的,亚马逊应用商店提供所有应用的深层链接。有关深层链接的更多信息,请参阅从您的应用中链接到亚马逊。但请注意,您的应用不得提示用户进行评分。用户可从应用的概览屏幕对您的应用进行评分。
问: 如何将屏幕键盘更改为数字键盘?
可以使用标准的Android机制为所有EditText小部件配置IME(输入法编辑器)。在XML中,使用android:inputType="number"
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/edittext"
android:inputType="number"/>
问: 如何在亚马逊Fire TV上截图?
更多详细信息,请参阅在Fire设备上截图
问: 我的应用使用Google的应用内购买。这一技术可否在亚马逊Fire TV平台上运行?
您不能使用Google IAP,但Amazon IAP有并行的API,可以帮助您在数小时内启动和运行。更多详细信息,请参阅Fire TV开发与Android TV开发有何不同
问: 在德国和/或奥地利为亚马逊Fire TV或Fire TV Stick推广应用时,是否有其他要求?
是。​如果相关应用允许将任何类型的视频或音频内容进行复制、录制、下载、存储到亚马逊Fire TV或Fire TV Stick设备、任何SD存储卡或任何连接的外部存储(如适用)上,或者执行类似操作,我们不允许在德国和/或奥地利的亚马逊Fire TV或Fire TV Stick上推广该应用。如果我们确定某个应用包含此功能,我们将不会让该应用出现在德国和/或奥地利。

Fire OS

问: Fire OS是否支持Android TV和v17 Leanback库?
Fire OS 5到Fire OS 7同时支持Android TV功能和Leanback库。但不支持使用Leanback库的SearchFragment类进行语音识别。更多详细信息,请参阅在Fire TV中实现搜索

媒体和DRM

问: Fire TV支持哪些第三方媒体播放器SDK?
我们支持将Amazon ExoPlayer端口用于Fire TV。
问: 通过什么选项来实现使用Microsoft PlayReady DRM加密的媒体的播放功能?
亚马逊Fire TV平台支持用来播放受保护媒体的Android MediaCrypto类,也可以使用支持PlayReady的第三方媒体播放器SDK。须了解哪些Fire TV设备支持哪些版本的PlayReady,请参阅Fire TV设备规格中的媒体规格表。
问: 亚马逊Fire TV是否支持使用加密音频的PlayReady内容?
Fire TV支持包含加密视频和明文(非加密)音频的PlayReady内容。此外,还支持Widevine DRM。更多详细信息,请参阅Fire TV设备规格。如果需要播放包含加密音频和视频的内容,请联系我们
问: 如何在Fire TV设备上解码Dolby Digital音频?
Fire TV和Fire TV Stick均包含Dolby Digital (AC3)和Dolby Digital Plus (eAC3)的解码器。Fire TV(第3代)还支持Dolby Atmos (EC3_JOC)。您应该可以使用标准的Android媒体播放器库播放这些格式。请注意,Fire TV设备不支持(或不需要)适用于Amazon Fire平板电脑的DolbyAudioProcessing SDK。有关播放杜比内容的更多信息,请参阅杜比集成指南
问: 是否所有设备都支持安全启动以验证固件和操作系统?
是。
问: 操作系统是否强制执行应用的签名检查?
是。​
问: 输出HDCP是否受HDMI上的安全通道保护?
是。​
问: 亚马逊Fire TV是否支持隐藏式字幕 (CEA-708)?
Fire TV支持平台级隐藏式字幕。媒体应用负责并且必须实现UI,使观看者能够通过第三方媒体播放SDK或他们自己的操作来定制字幕。

如果您使用的是Amazon ExoPlayer端口,请注意,4K流 (DASH) 的字幕样式通过ExoPlayer的嵌入式样式处理。如要忽略嵌入样式,可以使用playerView.subtitleView.setApplyEmbeddedStyles(false)。但是,请查阅ExoPlayer论坛了解更多信息,因为这是ExoPlayer的问题,而不是亚马逊的问题。(有关Fire App Builder的隐藏式字幕功能的信息,请参阅字幕支持。)

问: 亚马逊Fire TV上有哪些字体可用于隐藏式字幕?
亚马逊Fire TV包含许多平台字体,这些字体已经包含在系统中。

媒体播放

问: 媒体播放如何最大程度地节省资源和内存?
由于亚马逊Fire TV的媒体播放资源基于硬件且受内存限制,因此您的应用必须运行良好,并在退出和发生错误时释放媒体资源。有关处理音频焦点和媒体播放的详细信息,请参阅管理音频焦点Fire TV上多媒体应用的要求。还可以遵照Android文档中更详细的指南进行操作:
问: 我的应用在后台播放音乐。当我的应用暂停时,音频为什么停止播放? 或者当我的应用启动时,为什么来自另一个应用的音频继续播放?
您的应用未正确管理音频焦点。应用开始播放时,应同时请求音频焦点和注册媒体按钮事件。应用放弃音频焦点时(因为您已完成播放或因为其他应用请求了音频焦点),也须从媒体按钮事件中取消注册。具体来说:

更多详细信息,请参阅以下内容:

问: 为什么我的音乐应用在后台播放时不断地被随机终止?
将音乐播放应用作为前台服务运行。当资源不足时,系统会自动关闭后台服务(默认设置)。有关详细信息,请参阅MediaPlayer概览Service类中的startForeground()方法的Android指南。
问: 电视机被关闭/与HDMI线缆断开怎么办?
音频和视频的HDMI断开预期行为不同。详细信息,请参阅处理HDMI事件
问: 在媒体播放过程中,如何防止设备进入待机或白日梦模式(屏保)?
要在媒体播放期间让亚马逊Fire TV和电视机保持唤醒状态,请为活动设置KEEP_SCREEN_ON标记,或从电源管理器获取唤醒锁。如果您的应用未主动播放音频或视频,则必须释放所有唤醒锁,以便设备和电视机都可以进入睡眠状态和省电模式。有关如何使用唤醒锁的详细信息,请参阅PowerManagerPowerManager.WakeLock类。
问: 如何检测设备何时进入白日梦模式(屏保打开)?
白日梦模式是一个Android功能。亚马逊Fire TV进入白日梦模式后,如果电视已打开,则会显示屏保。注册Intent.ACTION_DREAMING_STARTEDIntent.ACTION_DREAMING_STOPPED以检测设备何时进入或退出白日梦模式。
问: 我可以使用Android WebView和<video> HTML标签进行视频播放吗?
可以,但有限制。您的应用暂停或停止后,系统当前不会释放硬件媒体资源。要解决此问题,请执行onStop()方法来显式停止应用的进程:
public void onStop() {super.onStop();android.os.Process.killProcess(android.os.Process.myPid());}

此问题还可能导致应用的用户体验和导航不稳定。在设备上播放媒体,建议使用第三方媒体播放器SDK。
问: 我可以在我的应用中播放4K超高清视频吗?
可以,部分Fire TV设备能够连接到支持4K的电视机,播放4K超高清视频。但其他Fire TV设备无法播放。有关支持4K的设备详情,请参阅Fire TV设备规格。播放4K内容之前,检查您的应用中:(1) Fire TV设备是否支持4K,(2) 连接的电视是否支持4K。亚马逊4K扩展库可帮助您为Fire TV第2代设备实现4K模式切换。

控制器

问: 亚马逊Fire TV游戏控制器没有像以前版本那样的媒体按钮。如何处理媒体播放?
亚马逊Fire TV为摇杆按压(播放/暂停)以及左(倒回)和右(快进)侧肩按钮 (L1/R1) 生成媒体输入事件。如果未在应用或游戏中使用这些按钮,请确保没有捕获或丢弃这些按钮事件,这样用户就可以在后台控制媒体播放。

如果将Amazon Fire游戏控制器上的媒体按钮在应用中用于其他用途,则新Amazon Fire游戏控制器的用户在没有这些按钮的情况下就无法使用该功能。更新应用,使按钮可通用于两个游戏控制器,并更新屏幕上的提示。

问: 如何通过亚马逊Fire TV游戏控制器管理音量控制?
除Fire TV(第3代)外,其他Fire TV设备可以将音频流传输到Amazon Fire游戏控制器上的耳机插孔(仅限当前一代控制器)。左右触发按钮 (L2/R2) 用于控制音量。
音量控制是一种系统功能,无法映射到应用中的其他按钮。但是,如果未在应用或游戏中使用触发按钮,请确保不要捕获或丢弃这些按钮事件,以便用户可以控制后台的播放媒体。
问: 我可以在应用中覆盖Fire TV语音遥控器上的麦克风按钮吗?
“麦克风”按钮启动系统范围的语音功能(请求瞬时音频焦点),无法覆盖。您的应用须处理此音频焦点变更事件 (AUDIOFOCUS_LOSS_TRANSIENT) 以及其他音频焦点变更事件(AUDIOFOCUS_LOSSAUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK),因为任何应用(不仅仅是语音)都可能会请求任何类型的音频焦点。简而言之,应适当处理所有音频焦点使用情形。更多详细信息,请参阅管理音频焦点
问: “菜单”按钮有什么作用,可否在我的应用中将其覆盖?
默认情况下,“菜单”按钮调用Android上下文菜单,该菜单显示为屏幕中心的菜单项列表。可以覆盖菜单按钮以提供自己的自定义菜单用户界面,或用于任何其他目的。
如果您只有一个菜单项,请考虑使用“菜单”按钮进行简单的切换(如打开或关闭隐藏式字幕),并提供屏幕提示以向用户展示该功能。
问: 当控制器连接、断开或休眠时,为什么我的活动会从头始?
这些事件由Android系统作为运行时配置更改来处理。要忽略应用中的这些事件,请修改您的AndroidManifest.xml以包含android:configChanges属性,并包含keyboardkeyboardHiddennavigation键:
<activity android:name="MyActivity"android:configChanges="keyboard|keyboardHidden|navigation">

有关configChanges属性以及如何在应用中处理运行时配置更改,请参阅Android指南处理配置变更
问: 我的应用或游戏中的游戏控制器连接断开怎么办?
如果Amazon Fire游戏控制器处于空闲状态,或者其中任一操纵杆在某个角度保持超过5分钟,则Amazon Fire游戏控制器可能会断开与系统的连接,以节省电池电量。当处于空闲状态或电池电量耗尽时,其他控制器也可能断开连接。使用Android OnInputDeviceRemoved侦听器来处理控制器断开连接事件。考虑暂停游戏或显示一个对话框,让用户知道控制器不再可用。

Fire TV Stick

问: 亚马逊Fire TV和Fire TV Stick有何区别?
Fire TV设备规格列出了所有Fire TV设备的规格。
问: 如何调整我的亚马逊Fire TV应用,使其适用于Fire TV Stick?
亚马逊Fire TV和Fire TV Stick运行相同的Fire OS(见Fire OS概述)。但一些较旧Fire TV Stick更受硬件限制,因此,优化应用的性能和稳定性可能是至关重要的。请确保遵循Android在硬件加速性能方面的最佳实践。特别注意OpenGL和纹理。有关每一Fire TV设备规格的具体信息,请参阅Fire TV设备规格
问: 如何以编程方式识别Fire TV Stick设备?
可以检查功能amazon.hardware.fire_tv以识别所有Fire TV设备。要查找Fire TV Stick,可以检查型号AFTMAFTT。欲了解更多信息,请参阅识别亚马逊Fire TV设备
问: 应用中的一些图像/背景没有显示,或者只显示灰框。
这通常是由位图图像或纹理过大导致的。Fire TV Stick支持最高2048x2048的纹理。如果应用出现此问题,您可能会在日志中看到如下错误:
W/OpenGLRenderer( 8941): Bitmap too large to be uploaded in a texture (3840x2160, max=2048x2048)

此外,请确保您的Fire TV的图像位于drawables-xhdpi/文件夹,而不是drawables/中。默认绘图的平台缩放可能导致超过纹理限制的大图像。


Last updated: 2024年2月6日