一般故障排除
此页面包含与集成Fire TV集成SDK有关的常见问题。
- 设备上未生成SDK日志
- 应用正在调用SDK并生成SDK日志,但Continue Watching(继续观看)行中未显示任何内容
- Fire TV系统未调用数据集成服务
- SDK功能检查返回true,但设备未显示Continue Watching(继续观看)行
- Continue Watching(继续观看)行未按预期运行
- 处理后台进程结束的场景
设备上未生成SDK日志
- 设备不受支持
- 确保您使用的是受支持的设备。请咨询您的亚马逊联系人,获取当前支持的设备类型列表。
- 设备软件已过时
- 如果您使用的是受支持的设备,请确保您已安装最新软件。导航到Settings(设置)> My Fire TV(我的 Fire TV)> About(简介),然后点击Check for Updates(检查更新)。
- 应用中未正确包含相应工件
- 如果您使用的是受支持的设备并且已安装最新软件,请仔细检查应用中是否正确包含相应工件。有关其他详细信息,请参阅在您的应用中添加SDK。
应用正在调用SDK并生成SDK日志,但Continue Watching行中未显示任何内容
- 检查点#1 - 确认功能已启用
- 导航到Settings > Preferences(首选项)> Privacy Settings(隐私设置)> Manage Sharing from Apps(管理来自应用的共享),验证是否已为您的CustomerID(客户ID)启用内容个性化功能。如果缺少Manage Sharing from Apps选项,请联系您的亚马逊联系人并提供您的CustomerID和DSN(设备序列号)。
- 检查点#2 - 确认已将您的应用列入许可名单
- 导航到Settings > Preferences > Privacy Settings > Manage Sharing from Apps > Manage by App,确认已将您的应用列入许可名单。如果其中不包含您的应用:
- 确保您的应用已安装在设备上,此列表仅显示已安装的应用。
- 选择Sync Amazon Content(同步亚马逊内容),等待最多15分钟,然后再次查看列表。
- 如果列表中仍缺少该应用,请联系您的亚马逊联系人,并提供您的CustomerID、DSN和用于开发的程序包名称。
- 检查点3 - 确认该功能已开启
- 确认您的应用已列入许可名单后,请确保您已启用该功能,方法是导航到Settings > Preferences > Privacy Settings > Manage Sharing from Apps,并将Share App Viewing and Content Info(共享应用查看和内容信息)功能设置为ON(开启)。
- 我还是找不到我的应用
- 确认您已满足以下所有条件:
- 正在使用受支持的设备,并且该设备具有所有最新更新
- 已完成开始使用Fire TV集成SDK - 步骤4
- 已在检查点#3中确认功能已启用和已将应用列入许可名单
- 已确认您正在使用目录文件中显示的CDF ID
如果您仍然无法在Continue Watching行中看到内容,请通过您的亚马逊联系人报告错误。
Fire TV系统未调用数据集成服务
此功能尚未启用,但您必须将其作为集成的一部分来实现。亚马逊将在内部验证实现情况。
SDK功能检查返回true,但设备未显示Continue Watching行
某些设备也许能够加载SDK库,但尚不完全支持Continue Watching体验。功能检查仅表明库是否可用,不保证功能的可用性。我们建议您仍然在设备上添加对SDK的调用,因为亚马逊将来可能会支持这些设备。您的亚马逊联系人可以共享当前支持Continue Watching功能的设备列表。
Continue Watching行未按预期运行
请参见故障排除。
处理后台进程结束的场景
当前台进程需要内存时,Android操作系统会停止其他进程以释放内存。但是,活动历史记录会保留在活动堆栈中。下次启动该活动时,将使用停止该进程之前的初始启动意图启动该活动。第二个意图(即最新的意图),接下来使用onNewIntent()
回调实现。
后台信息
Android的处理流程
了解处理流程将有助于您了解操作系统如何使用进程和意图。
- 第三方应用(活动A)以深度链接意图(意图A)启动。
ActivityA.onCreate()
被调用,并且getIntent()
将产生意图A。- 活动A已移至后台,客户可能会使用其他应用和功能。
- Android内存不足终止守护程序 (lmkd) 会停止活动A以释放内存。
-
ActivityA.onDestroy()
被调用,然后活动A进程停止。重要须知: Android操作系统停止活动A进程后,活动A仍会保留在活动堆栈中,并记住活动状态,包括最初的启动意图。 - 活动A稍后以不同的用例和不同的意图(意图B)开始。
ActivityA.onCreate()
被调用,但getIntent()
仍将产生意图A。- 如果使用非标准启动模式,例如
singleTop
、singleTask
或singleInstance
,则Android操作系统将检查任务是否已经存在活动,并将尝试使用onNewIntent()
回调来路由意图。 - 对于标准启动模式,您必须创建目标任务的新实例,并将意图传送到该新实例。
- 如果使用非标准启动模式,例如
- 接下来会调用
ActivityA.onNewIntent()
,将意图B作为回调中的意图。
跨实例保存状态
当一个进程通过Android操作系统在后台结束时,系统会首先调用onSaveInstanceState(Bundle)
,这样该活动就可以将状态信息保存到实例状态Bundle中。在下次活动启动期间,在onCreate()
中,保存的实例Bundle可用于指示该进程在由Android操作系统结束后重新启动,或者该进程是否是新启动的活动。
该活动不会结束以释放内存,但活动运行时所在的进程将停止。重新创建活动时,可以从Bundle中恢复保存的实例。
有关更多信息,请参阅以下内容:
不能正常使用上一个意图(例如针对深度链接)
如果深度链接似乎不能正常起作用,则可能是因为选择了上一个意图,而不是最新的意图。有两种方法可以解决这个问题。
选项1
第一个选项是使用从应用收到的最新意图。如果深度链接未显示正确的信息,则可能是因为您没有使用最新的意图。除最新意图以外的所有意图都会被系统删除或忽略。
有关更多信息,请参阅onNewIntent()
。
选项2
除了选项1,您还可以使用专门的活动来接收和转发深度链接。这样做的好处是,在处理深度链接后,活动可以调用finish()
,将其从活动历史记录中删除。下次启动活动时,当从onCreate()
等生命周期回调中使用getIntent()
时,该活动将包含最新的意图。这样系统就不需要等待onNewIntent()
回调。
Last updated: 2024年10月25日