安卓配置
在安卓系统中创建 RainMaker 项目
你可以在 local.properties
文件中修改所有与安卓 RainMaker 配置相关的字段。在 Android Studio 中打开 RainMaker 项目,系统将生成 local.properties
文件。请为以下属性添加相应的值。
应用配置
Key | 类型 | 描述 |
---|---|---|
isScheduleSupported | 布尔 | 在应用中启用 (true) 或禁用 (false) 调度功能。 |
isNodeGroupingSupported | 布尔 | 在应用中启用 (true) 或禁用 (false) 节点分组功能。 |
isNodeSharingSupported | 布尔 | 在应用中启用 (true) 或禁用 (false) 节点共享功能。 |
isLocalControlSupported | 布尔 | 在应用中启用 (true) 或禁用 (false) 本地控制功能。 |
云端配置
RainMaker 借助 AWS 服务提供 RESTful API,这些 API 能够提供移动应用中的认证、授权和用户管理服务,同时也可用于设备通信。请在应用中打开 local.properties
文件进行相应配置。
Key | 类型 | 描述 |
---|---|---|
baseUrl | 字符串 | 与每个 API 端点相对应。获取端点请参考获取 RainMaker API URL。 |
claimBaseUrl
键可用于协助 Claiming 的 API 端点,但不适用于设备产品,因此需要在 local.properties
文件中添加 claimBaseUrl=
或 claimBaseUrl=NA
值,将其设为空白或不适用。
第三方登录
RainMaker 借助 AWS 服务提供 RESTful API,这些 API 能够提供移动应用中的认证、授权和用户管理服务,同时也可用于设备通信。请在应用中打开 local.properties
文件进行相应配置。
Key | 类型 | 描述 |
---|---|---|
clientId | 字符串 | 用于识别用户池中的应用。详细内容请参阅在哪里可以找到第三方集成和手机应用的 Client ID 和回调 URL。 |
authUrl | 字符串 | 第三方登录的 OAuth 网址。详细内容请 参阅在哪里可以找到认证 URL。 |
redirectUri | 字符串 | 自定义 URI 方案,第三方登录完成后将用户重定向至应用。请把此值复制到 local.properties 文件中,具体步骤请参阅设置重定向 URI。 |
外部链接
以下链接用于在应用浏览器中打开与项目相关的文件。请在 local.properties
文件中为每个文件类型提供有效链接。
Key | 类型 | 描述 |
---|---|---|
docUrl | 字符串 | 文档链接 |
privacyUrl | 字符串 | 隐私政策链接 |
termsOfUseUrl | 字符串 | 使用条款链接 |
设置重定向 URI
为应用设置重定向 URI,你需要在 AndroidManifest.xml
文件的数据标签中写入你的应用 ID 作为主机。
下面以 ESP RainMaker 应用的重定向 URI 为例。
ESP RainMaker 应用的重定向 URI 将会如下所示:
rainmaker://com.espressif.rainmaker/success
将 com.espressif.rainmaker
替换为你应用的 ID,此时重定向 URI 将会如下所示:
rainmaker://your_application_id/success
推送通知设置
-
首先需要在 Firebase 中注册安卓应用,才可启用推动通知 (Push Notifications)。若你尚未注册,请参阅创建 Firebase 项目进行注册。
-
点击
Download google-services.json
以获得 Firebase 安卓配置文件 (google-services.json),将现有的google-services.json
文件替换为新下载的文件,你可以在应用模块 (app-level) 目录下找到该下载文件。 -
其余设置保持默认即可。
-
接下来的步骤请参阅在安卓中配置推送通知服务。
Alexa 账号关联
Alexa 账号关联 (account linking) 功能允许用户从自有应用程序中关联 Alexa 账号。下文介绍了如何在自有应用端进行配置以使用该功能。
更多关于账号关联和云端配置的信息,请参考 Alexa App-to-App 账号关联。
创建安卓应用链接
启用 Alexa 账号关联功能需要允许 Alexa 应用或浏览器将用户重定向至你的自有应用。为启用重定向功能,首先需要在安卓应用中启用应用链接。
请参考创建指向应用内容的深层链接和验证安卓应用链接文档,启用应用链接功能。
以下是为使用 ESP RainMaker 部署的安卓应用程序创建和配置应用程序链接的步骤。
-
请按照为移动应用创建重定向 URL 中的步骤为使用 ESP RainMaker 部署的应用创建应用链接,并记下你在步骤 12 中得到的 redirectURL 的值,该值即为你的“应用链接”。
-
按照以下步骤创建
assetlinks.json
文件。-
下载此 assetlinks.json 文件。
-
在 "your_application_id" 处输入应用 ID。
-
在 "add_your_sha256_fingerprint_here" 处输入 keystore 文件中的 sha256_cert_fingerprint。
备注- 如果你没有用于对应用进行签名的 keystore 文件,请参照生成上传密钥和密钥库中的步骤进行创建。
- 运行
./gradlew signingReport
命令以获取 SHA-256 证书指纹。 - 为了启用应用链接功能,你安装的应用必须使用相同的 SHA-256 指纹进行签名。
-
-
将
assetlinks.json
文件上传至.well-known
文件夹,请参考上传文件至 s3 并设置公开读取权限。 -
修改
AndroidManifest.xml
文件AlexaAppLinkingActivity
标签中的 host 值。获取该值的办法为移除你的重定向 URL 中的 "https://" 并将剩下的值添加至AndroidManifest.xml
文件中的 "your_host_value" 处。
下文为设置安卓应用链接的一个示例。
- 假设你已经按照步骤 1 获得重定向 URL,如下所示:
https://my-app-link.s3.amazonaws.com/
-
下载
assetlinks.json
文件,将 "your_application_id" 替换为 "com.example.my_app",即安卓应用 ID。运行./gradlew signingReport
命令获取 SHA-256 证书指纹,将其添加至文件中。进行上述操作后,
assetlinks.json
文件的内容将如下所示:
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.example.my_app",
"sha256_cert_fingerprints":[
"E6:B5:DD:AF:62:90:93:3E:63:52:6B:C6:15:CC:DC:A3:1E:DE:AF:20:D2:07:3F:A4:89:CB:8C:78:D2:AE:CC:0D"
]
}
}]
- 上传
assetlinks.json
文件至.well-known
文件夹。 - 将 "your_host_value" 替换为你的重定向 URL 中的 host 值,该值可以在
AndroidManifest.xml
文件中找到,如下所示:
<activity
android:name="com.espressif.ui.activities.AlexaAppLinkingActivity"
android:label="@string/title_activity_amazon_alexa"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="my-app-link.s3.amazonaws.com"
android:scheme="https" />
</intent-filter>
</activity>
你也可以使用 Digital Asset Links Generator 或者 Android Studio 中的 App Links Assistant 创建应用链接并进行测试。
配置应用链接
Alexa 账号关联的所有参数都可以在 local.properties
文件中进行设置。
在 Android Studio 中打开项目即可生成 local.properties
文件。请为以下配置属性添加值。
Key | 类型 | 描述 |
---|---|---|
authUrl | 字符串 | OAuth URL。请参考在哪里可以找到认证 URL以获取该值。 |
alexaClientId | 字符串 | Alexa client ID。你可按照以下步骤获取该值: - 前往 Alexa 开发者控制台 - 打开 Skill - 打开 Build 标签页- 打开 Permissions - 找到 Alexa Client Id |
alexaClientSecret | 字符串 | Alexa client secret。你可按照以下步骤获取该值: - 前往 Alexa 开发者控制台 - 打开 Skill - 打开 Build 标签页- 打开 Permissions - 找到 Alexa Client Secret |
alexaRedirectUrl | 字符串 | 调用 Alexa 认证码和 RainMaker 认证码(或自定义用户认证服务)时可获取重定向 URL。该值也被用作安卓应用的应用链接。请参考为移动应用创建重定向 URL了解如何配置应用链接。 |
alexaRMClientId | 字符串 | 请参考在哪里可以找到 Alexa 和 GVA 的 Client ID 和回调 URL并复制 esp-rainmaker-alexa-skill 客户端 ID。 |
skillId | 字符串 | 用于链接 Skill 的 Skill ID。你可按照以下步骤获取该值: - 前往 Alexa 开发者控制台 - 打开 Skill - 打开 Build 标签页- 打开 Smart Home - 找到 Skill Id |
skillStage | 字符串 | 可能值: live:用于活跃 Skill。 development:用于开发中的 Skill。 |
alexaAccessTokenUrl | 字符串 | 用于从 Alexa 认证码中获取 Alexa 访问令牌的 API 端点。 请参考获取 Alexa 访问令牌 URL 中的步骤。 |
Firebase 设置
你必须在 Firebase 控制台中使用谷歌账号登录才可展开进一步配置。
创建 Firebase 项目
-
打开 Firebase 控制台,点击
Create a project
,在Project name
中选择或输入项目名字。
如果你已有谷歌云 (Google Cloud) 项目,你可以从下拉菜单中选择该项目,并将 Firebase 资源添加到其中。
- (可选)如需创建新项目,你可以对
Project ID
进行编辑。你必须在此步骤中编辑项目 ID 才可以使用特殊标识符,Firebase 将自动给你的项目分配一个唯一 ID。
添加 Firebase 资源后,你将无法更改项目 ID。
-
点击
Continue
。 -
点击
Create project
(如果你使用的是已有的谷歌云项目,请选择Add Firebase
)。
更多信息请参阅创建 Firebase 项目。
在 Firebase 中注册应用
你需要在 Firebase 中注册应用,才可以在安卓中使用 Firebase,这一注册过程通常被称为“添加”应用到项目中。
如果你想了解更多在 Firebase 中添加应用的最佳实践和注意事项,例如如何处理多个构造变体,请参阅了解 Firebase 项目。
-
前往 Firebase 控制台。
-
在
Project Overview
页面中央点击安卓图标 (plat_android),或点击Add an app to get started
来启动设置流程。 -
在
Android package name
字段中输入应用的软件包名称(应用 ID),然后点击Register app
。备注请确保输入正确的软件包名称,注意区分大小写。注册 Firebase 项目后,这一软件包名称将无法再更改。
备注更多信息请参见在 Firebase 中注册你的应用。