ESP RainMaker Customer Docs

ESP RainMaker Customer Docs

  • 入门指南
  • 发布版本
  • 帮助

›手机应用

介绍

  • 介绍

RainMaker 云

  • RainMaker 云
  • 准备工作
  • 部署前配置
  • 部署
  • 后端
  • 节点注册模块
  • 前端部署
  • 部署后配置
  • 部署验证
  • 获取许可证
  • 附加服务
  • 推送通知
  • 部署升级
  • 配置
  • 卸载

手机应用

  • 安卓配置
  • iOS 配置
  • 通知 Payload

CLIs

  • CLI

固件

  • 固件

第三方登录

  • 谷歌登录
  • 苹果登录

集成

  • 语音助手集成
  • Alexa
  • 谷歌语音助手
  • 语音助手集成插件仓库
  • Alexa 账号关联
  • 发布 Alexa Skill
  • 发布谷歌语音助手 Action
  • 升级

功能

  • 功能

监测

  • 监测面板

参考

  • 参考

安卓配置

[English Version]

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

推送通知设置

  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 账号关联。

创建安卓应用链接

启用 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 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 项目

  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 中注册您的应用。

← 卸载iOS 配置 →
  • 在安卓系统中创建 RainMaker 项目
    • 应用配置
    • 云端配置
    • 第三方登录
    • 外部链接
    • 设置重定向 URI
    • 推送通知设置
    • Alexa 账号关联
  • Firebase 设置
    • 创建 Firebase 项目
    • 在 Firebase 中注册应用
Copyright © 2024 Espressif Systems