一、对接准备
语音技能快速绑定的功能对接,需要首先开通过语音技能增值服务, Amazon Alexa 技能绑定服务开通、Google Assistant 技能绑定服务开通。该服务属于收费增值服务,如果未开通需要先联系涂鸦的项目经理申请开通。:该服务开通是根据APP SDK维度开通,如果有多个APP 都需要使用该功能,则需要开通多个服务。
服务开通之后,会有专业的运营同学负责对接。需要将APP 包名【Android&IOS】,APP的app_scheme,以及Android 端的SHA256信息,提供给涂鸦侧,涂鸦负责后续的配置,配置完成后会提供Google Action Client-ID等信息。
:该服务只是对接开发的APP和alexa&google app 之间的账号快绑功能,账号绑定之后,设备在alexa和google 音箱或APP操作问题,和该服务无关,需要检查产品是否成功的配置了alexa和google 能力。
:Alexa & Google 语音技能只支持国外的账号,不支持国内账号测试。并且测试的时候需要注意手机是否支持谷歌服务。
:Alexa & Google 开发阶段用于测试绑定跳转登录的账号一定要是开通了测试技能的测试账号。不要自己随意注册账号测试。
一、安卓端
安卓端对接文档参考:https://developer.tuya.com/cn/docs/app- ... zstrvmvf2t
二、IOS端
IOS端对接文档参考:https://developer.tuya.com/cn/docs/app- ... 3drpvwm22q
二、问题排查
语音技能快速绑定的过程中,经常会出现无法跳转到alexa&google APP,或从alexa & google 无法跳转到开发APP上的问题。遇到问题之后,需要按照以下思路一一排查配置,有任何一个配置的错误,都有可能会导致问题的产生。
一、安卓端
1.查看local.properties中的app_scheme,该配置是在IOT平台,项目配置的包名和app_scheme必须要和IOT平台上的配置一致。
2. build.gradle中AndroidManifest.xml相关配置是否添加,app_scheme配置正常之后,可以直接复制该配置代码到项目中。
Code: Select all
defaultConfig {
……
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
manifestPlaceholders = [
INTERNAL_HOST: "${properties.getProperty("app_scheme")}".concat('.app.tuya.com'),
ALEXA_AUTH_INTERNAL_HOST: "${properties.getProperty("app_scheme")}".concat('.applink.smart321.com'),
ALEXA_AUTH_INTERNAL_HOST_NEW: "${properties.getProperty("app_scheme")}".toLowerCase(Locale.ENGLISH).concat('.applink.smart321.com'),
]
}
安装应用等待至少20s,等系统完成验证,输入如下指令检查能否唤起应用:
adb shell am start -a android.intent.action.VIEW \
-c android.intent.category.BROWSABLE \
-d "http://domain.name:optional_port"
注意:
- 指令中的domain.name替换成二级域名
- optional_port目前支持https协议都填写443
3.Alexa 配置,直接在res文件中配置即可,如果不配置默认是false,会导致APP无法拉起alexa或google APP .
Code: Select all
// true 代表 Alexa 授权页面显示支持跳转客户自己 App 账号。false 代表 Alexa 授权页面显示不支持跳转客户自己 App 账号。
<bool name="is_show_alexa_oem_account"></bool>
// true 代表支持 Alexa 拉起 App 授权。false 代表不支持 Alexa 拉起 App 授权。
<bool name="is_alexa_to_thingpp_support">是否支持 Alexa 拉起 App 授权</bool>
4.Google 配置,需要填写由涂鸦侧提供的google client id
Code: Select all
<string name="google_flip_client_id">替换为涂鸦提供的 Client-ID</string>
5.Android 端配置的本地签名和IOT平台上面的SHA256以及之前提供给涂鸦侧的SHA256信息是否一致。这三处的SHA256信息必须要一致,否则会影响APP的使用。
6.Android 权限配置,部分手机可能需要手动打开“支持的网址”,不同的手机厂商系统和版本,显示可能不同,但在系统设备-应用管理里面都可以找到相应的配置。如果该权限没有开启,则无法从alexa 和google APP 跳转到原APP中。
二、IOS 端
1. 检查证书是否配置,苹果开发者平台 证书开启 Associated Domains,并且在IOT平台上面上传Distribution 的证书和描述文件。:APP 中的证书一定要和IOT平台配置的一致。
2.配置通用连接, Signing & Capabilities 中 Associated Domains 添加 Universal Link,配置如下三个通用链接,其中渠道标识符就是app_schema,在IOT 平台获取
Code: Select all
applinks:<渠道标识符>.applink.smart321.com
applinks:<渠道标识符>.applink.app.tuya.com
applinks:<渠道标识符>.applink.appflip.tuya.com
3.Alexa 配置对应白名单
在项目的 info.plist 中添加 LSApplicationQueriesSchemes,类型为 Array。
在 LSApplicationQueriesSchemes 中添加一个 item,类型为 String,值为 Alexa。
确保 LSApplicationQueriesSchemes 中所配置的 item 总数不超过 50 个。
4.Google 配置thing_custom_config.json中的google_flip_client_id信息
Code: Select all
{
"config": {
"google_flip_client_id": "您的 google_flip_client_id",
},
}
5.Appdelegate 中方法调用
调用任何接口前,务必确认用户已登录。
必须在 Appdelegate 的 application:continueUserActivity:restorationHandler: 方法内实现 thing_application:continueUserActivity:restorationHandler:,否则无法处理 App 跳转的回调。
三、配置修改
一、安卓端
二、IOS 端
文本更改:
先找到文案的key,然后通过业务包多语言值替换.pdfhttps://images.tuyacn.com/rms-static/27 ... 7cee63.pdf,可以更改业务包的文案。
附件:
测试视频:
https://support.tuya.com/zh/help/_detail/Kax3q2qsizzh5
其他问题:
https://support.tuya.com/zh/help/_list?category=370008