跳到主要内容

安卓配置

在安卓系统中创建 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

推送通知设置

  1. 首先需要在 Firebase 中注册安卓应用,才可启用推动通知 (Push Notifications)。若你尚未注册,请参阅创建 Firebase 项目进行注册。

  2. 点击 Download google-services.json 以获得 Firebase 安卓配置文件 (google-services.json),将现有的 google-services.json 文件替换为新下载的文件,你可以在应用模块 (app-level) 目录下找到该下载文件。

    firebase10

  3. 其余设置保持默认即可。

    firebase11

  4. 接下来的步骤请参阅在安卓中配置推送通知服务


Alexa 账号关联

Alexa 账号关联 (account linking) 功能允许用户从自有应用程序中关联 Alexa 账号。下文介绍了如何在自有应用端进行配置以使用该功能。

备注

更多关于账号关联和云端配置的信息,请参考 Alexa App-to-App 账号关联

创建安卓应用链接

启用 Alexa 账号关联功能需要允许 Alexa 应用或浏览器将用户重定向至你的自有应用。为启用重定向功能,首先需要在安卓应用中启用应用链接。

请参考创建指向应用内容的深层链接验证安卓应用链接文档,启用应用链接功能。

以下是为使用 ESP RainMaker 部署的安卓应用程序创建和配置应用程序链接的步骤。

  1. 请按照为移动应用创建重定向 URL 中的步骤为使用 ESP RainMaker 部署的应用创建应用链接,并记下你在步骤 12 中得到的 redirectURL 的值,该值即为你的“应用链接”。

  2. 按照以下步骤创建 assetlinks.json 文件。

    1. 下载此 assetlinks.json 文件

    2. 在 "your_application_id" 处输入应用 ID。

    3. 在 "add_your_sha256_fingerprint_here" 处输入 keystore 文件中的 sha256_cert_fingerprint。

    备注
    • 如果你没有用于对应用进行签名的 keystore 文件,请参照生成上传密钥和密钥库中的步骤进行创建。
    • 运行 ./gradlew signingReport 命令以获取 SHA-256 证书指纹。
    • 为了启用应用链接功能,你安装的应用必须使用相同的 SHA-256 指纹进行签名。
  3. assetlinks.json 文件上传至 .well-known 文件夹,请参考上传文件至 s3 并设置公开读取权限

  4. 修改 AndroidManifest.xml 文件 AlexaAppLinkingActivity 标签中的 host 值。获取该值的办法为移除你的重定向 URL 中的 "https://" 并将剩下的值添加至 AndroidManifest.xml 文件中的 "your_host_value" 处。

下文为设置安卓应用链接的一个示例。

  1. 假设你已经按照步骤 1 获得重定向 URL,如下所示:
https://my-app-link.s3.amazonaws.com/
  1. 下载 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"
]
}
}]
  1. 上传 assetlinks.json 文件至 .well-known 文件夹。
  2. 将 "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 项目

  1. 打开 Firebase 控制台,点击 Create a project,在 Project name 中选择或输入项目名字。

    firebase1

    firebase2

备注

如果你已有谷歌云 (Google Cloud) 项目,你可以从下拉菜单中选择该项目,并将 Firebase 资源添加到其中。

  1. (可选)如需创建新项目,你可以对 Project ID 进行编辑。你必须在此步骤中编辑项目 ID 才可以使用特殊标识符,Firebase 将自动给你的项目分配一个唯一 ID。
备注

添加 Firebase 资源后,你将无法更改项目 ID。

  1. 点击 Continue

    firebase3

  2. 点击 Create project(如果你使用的是已有的谷歌云项目,请选择 Add Firebase)。

    firebase4

备注

更多信息请参阅创建 Firebase 项目


在 Firebase 中注册应用

你需要在 Firebase 中注册应用,才可以在安卓中使用 Firebase,这一注册过程通常被称为“添加”应用到项目中。

备注

如果你想了解更多在 Firebase 中添加应用的最佳实践和注意事项,例如如何处理多个构造变体,请参阅了解 Firebase 项目

  1. 前往 Firebase 控制台

  2. Project Overview 页面中央点击安卓图标 (plat_android),或点击 Add an app to get started 来启动设置流程。

    firebase5

  3. Android package name 字段中输入应用的软件包名称(应用 ID),然后点击 Register app

    firebase6

    备注

    请确保输入正确的软件包名称,注意区分大小写。注册 Firebase 项目后,这一软件包名称将无法再更改。

    备注

    更多信息请参见在 Firebase 中注册你的应用

On this page