安卓配置
在安卓系统中创建 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 终端节点相对应。 |
注意:"claimBaseUrl" 键可用于 Assisted Claiming 的 API 终端节点,但不适用于设备产品,因此您需要在 local.properties
文件中添加 claimBaseUrl=
或 claimBaseUrl=NA
值,将其设为空白或不适用。
第三方登录
RainMaker 借助 AWS 服务提供 RESTful API,这些 API 能够提供移动应用中的认证、授权和用户管理服务,同时也可用于设备通信。您需要在应用中打开 local.properties
文件进行相应配置。
Key | 类型 | 描述 |
---|---|---|
clientId | 字符串 | 用于识别用户池中的应用。 |
authUrl | 字符串 | 第三方登录的 OAuth 网址。 |
redirectUri | 字符串 | 自定义 URI 方案,第三方登录完成后将用户重定向至应用。您需要把此值复制到 local.properties 文件中,具体步骤请参阅 设置重定向 URI。 |
外部链接
以下链接用于在应用浏览器中打开与项目相关的文件。请在 local.properties
文件中为每个文件类型提供有效链接。
Key | 类型 | 描述 |
---|---|---|
docUrl | 字符串 | 文档链接 |
privacyUrl | 字符串 | 隐私政策链接 |
termsOfUseUrl | 字符串 | 使用条款链接 |
设置重定向 URI
为应用设置重定向 URI,您需要在 AndroidManifest.xml
文件的数据标签中写入您的应用 ID 作为主机。
下面以 ESP RainMaker 应用的重定向 URI 为例。
<data
android:host="com.espressif.rainmaker"
android:path="/success"
android:scheme="rainmaker" />
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 账号关联。
创建安卓应用链接
启用 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 Id |
alexaRedirectUrl | 字符串 | 调用 Alexa 认证码和 RainMaker 认证码(或自定义用户认证服务)时可获取重定向 URL。该值也被用作安卓应用的应用链接。请参考 为移动应用创建重定向 URL 了解如何配置应用链接。 |
alexaRMClientId | 字符串 | 请参考 获取 Alexa 和谷歌语音助手客户端 ID 的步骤 并复制 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 中注册您的应用。