Skip to content
Darren edited this page Oct 19, 2018 · 19 revisions

1 配置开发环境

1.1 SDK集成

SDK及Sample使用Android Studio开发,所以使用Android Studio的开发者可以按照以下方式进行集成:

1.集成源码

  • 直接Clone项目代码,将onenet-sdk模块导入到自己的项目中
  • 在application module的build.gradle文件中添加对SDK的依赖,如下图所示

2.build.gradle中添加依赖

推荐使用这种方式集成

dependencies {
    compile 'com.chinamobile.iot.onenet:onenet-sdk:+'
}

1.2 设置AndroidManifest.xml

  • 声明权限
<uses-permission android:name="android.permission.INTERNET"/>
  • 设置APP-KEY

在application标签中加入

<meta-data
    android:name="com.chinamobile.iot.onenet.APP-KEY"
    android:value="APP-KEY"/>

其中value的值为OneNET开发者中心创建的产品apikey

关于如何创建产品和获取apikey的文档,开发者可以参考OneNET开发文档快速开始接入帮助

  • 设置SDK访问的服务器地址

OneNET默认的API服务器地址为api.heclouds.com,但是有些移动的省公司使用了自己的服务器,如福建公司的API服务器地址为api.fj.cmcconenet.com,所以SDK的API地址做成了可配置的,需要在application标签中加入

<meta-data
    android:name="com.chinamobile.iot.onenet.SCHEME"
    android:value="https"/>
<meta-data
    android:name="com.chinamobile.iot.onenet.HOST"
    android:value="API url"/>

1.3 初始化

SDK在使用相应的API前需要进行初始化工作,需要在应用自定义的Application中增加如下代码

@Override
public void onCreate() {
    super.onCreate();
    Config config = Config.newBuilder()
            .connectTimeout(60000, TimeUnit.MILLISECONDS) // 连接超时时间
            .readTimeout(60000, TimeUnit.MILLISECONDS)    // 读取数据超时时间
            .writeTimeout(60000, TimeUnit.MILLISECONDS)   // 发送数据超时时间
            .retryCount(2) // 连接失败重试次数
            .build();
    OneNetApi.init(this, true, config);
}

1.4 代码混淆

为了保证正常使用 SDK ,请在 proguard-rules.pro 文件中添加以下代码:

-dontwarn com.chinamobile.iot.onenet.**
-keep class com.chinamobile.iot.onenet.** { *; }

-dontwarn okhttp3.**
-keep class okhttp3.** {*;}
-dontwarn okio.**

1.5 系统要求

  • SDK运行要求:Android 1.6 (API 4) 及以上
  • Sample运行要求:Android 4.1 (API 16) 及以上

1.6 使用须知

  • v2.0版本完全重写了SDK,传输层使用OkHttp3,API根据OneNET RESTful文档做了相应的增减,API与v1.x不兼容,请使用了v1.x版本的开发者慎重升级。
  • 如果开发者项目中使用了OkHttp,建议在集成了SDK时使用exclude命令排除SDK中的OkHttp依赖,防止因为版本不同编译时发生冲突报错,即
dependencies {
    compile ('com.chinamobile.iot.onenet:onenet-sdk:+') {
        exclude group: 'com.squareup.okhttp3', module: 'okhttp'
        exclude group: 'com.squareup.okhttp3', module: 'logging-interceptor'
    }
}