门锁SDK集成

一、概述

本文主要介绍如何集成门锁SDK

二、前提条件

  1. 确认完成准备工作
  2. 确认完成环境搭建

三、功能特性

3.1 主体功能

  1. 支持Aqara门锁配网
  2. 支持Aqara门锁控制

3.2 SDK大小

依赖库 说明 大小
React Native(0.63.4) React Native框架 10MB
Aqara桥接层 SDK运行所必须的组件 24MB
其他 SDK运行所必须的组件 14MB
合计 - 48MB

注意:48MB为集成SDK最大增量,即第三方App的依赖和SDK的第三方依赖毫无交集时。通常情况下,会小于该值。

3.3 支持设备品类

详情查看设备清单

四、集成

门锁垂直品类SDK主要通过React Native的技术栈来实现设备入网和设备控制

4.1 安装Node

集成门锁SDK之前,需要先安装React Native相关的依赖项,否则无法编译、打包。建议创建新的分支进行集成。

依赖库 版本要求
Node.js 16.20.2
JDK 1.8

如需获取更多关于React Native的资料,请参考React Native官方指引

4.1.1 macOS

我们推荐使用Homebrew来安装Node:

安装Node

brew install node

4.1.2 windows

我们建议通过Chocolatey安装Node:

安装Node

choco install -y nodejs-lts

注意:如果你已经安装了Node,Node的版本应大于等于14

4.2 配置门锁SDK的Node依赖项

4.2.1 在项目根目录下创建package.json

在Android项目的根目录下,创建package.json文件,并复制下面的内容到文件中

{
  "name": "rn_demo_0614",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "android": "react-native run-android",
    "ios": "react-native run-ios",
    "start": "react-native start",
    "test": "jest",
    "lint": "eslint ."
  },
  "dependencies": {
    "@react-native-community/async-storage": "^1.11.0",
    "lodash": "^4.17.15",
    "prop-types": "^15.7.2",
    "react": "17.0.1",
    "react-native": "0.63.4",
    "react-native-gesture-handler": "^1.5.2",
    "react-native-reanimated": "^1.4.0",
    "react-native-root-toast": "^3.2.0",
    "react-native-screens": "^1.0.0-alpha.23",
    "react-navigation": "^4.0.10",
    "react-redux": "^7.1.3",
    "redux": "^4.0.4",
    "redux-logger": "^3.0.6",
    "redux-thunk": "^2.3.0",
    "reselect": "^4.0.0"
  },
  "devDependencies": {
    "@babel/core": "7.7.4",
    "@babel/runtime": "7.7.4",
    "@react-native-community/eslint-config": "2.0.0",
    "babel-jest": "26.6.3",
    "eslint": "7.16.0",
    "jest": "26.6.3",
    "jetifier": "^1.6.5",
    "metro-react-native-babel-preset": "0.64.0",
    "react-navigation-stack": "^1.10.3",
    "react-test-renderer": "17.0.1"
  },
  "jest": {
    "preset": "react-native"
  }
}

4.2.2 在项目根目录下运行命令,下载相关依赖项

通过终端执行以下命令,该命令会通过package.json下载对应的依赖,并在项目根目录生成node_modules文件夹

npm install --legacy-peer-deps

4.3 集成门锁SDK

4.3.1 编辑目录下build.gradle 或者 settings.gradle

repositories {
    maven {
      url "$rootDir/node_modules/react-native/android"
    }
}

4.3.2 编辑app目录下build.gradle

dependencies {
    //统一初始化,请注意使用最新版本
    implementation 'com.lumi.external:core:2.1.33'
    //门锁SDK,请注意使用最新版本
    implementation 'com.lumi.sdk:reactnative:4.1.14'
}

4.3.3 编辑AndroidManifest.xml

<application>
  ...
  <provider
        android:name="androidx.core.content.FileProvider"
        android:authorities="${applicationId}.fileprovider"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/custom_file_paths" />
    </provider>
</application>

custom_file_paths.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <paths>
        <cache-path path="" name="camera_photos"/>
        <external-path path="" name="camera_photos" />
        <files-path path="" name="camera_photos" />
        <root-path path="" name="camera_photos" />
        <external-files-path name="share_files" path="."/>
    </paths>
</resources>

4.4 初始化

4.4.1 统一初始化

参见环境搭建-统一初始化

五、代码混淆

-dontwarn com.facebook.**
-keep class com.facebook.** { *; }
Copyright © 2023 深圳绿米联创科技有限公司 all right reserved,powered by Gitbook文档修改时间: 2024-09-27 21:51:47

results matching ""

    No results matching ""