本文档为机智云物联网开源基础App套件使用说明,旨在为机智云物联网开发者提供一个快速开发模板,可在此工程基础上进行快速开发或参考相关代码进行开发。
Android开源框架工程源码链接:
Eclipse 版本:https://git.oschina.net/dantang/GizOpenSource_AppKit_Android
Android Studio版本:https://github.com/gizwits/GOpenSource_AppKit_Android_AS
Android Gokit App是使用开源框架工程的源码范例,源码链接:
https://git.oschina.net/dantang/GoKit_Demo_Android
也可在下载中心下载Android Gokit App:
默认程序入口在 UserModule 中的 GosUserLoginActivity。
A. 设定初始化参数
在工程的 GosApplication.java 文件中填写机智云AppID及AppSecret,如果使用第三方登录或推送,需要填写相应的从其他资源平台申请的参数;如果使用推送需要打开当前需要使用推送的类型的初始化,如果都为注释状态则表示当前不使用第三方推送,同时只支持一种第三方推送,不可打开多个第三方推送宏定义的注释。可配置的参数有:
1 | app_id:机智云 app id |
需要注意:
1.极光推送的appid需要在AndroidManifest.xml 中填写见243行。
2.微信登录需要进行在腾讯api中设置自己的md5值否则无法正常运行
3.tencent_app_id需要在AndroidManifest.xml中89行填写
B. 加载控制界面
1)框架工程内提供的代码已经可以在不修改任何代码的前提下,进行到控制界面的跳转操作,开发者只需要关心操作界面的逻辑即可,如果需要在设备列表界面中点击某设备后,跳转到自己创建的控制器视图中,请在 GosDeviceListActivity.java 文件中修改相应跳转参数。请按照图示修改跳转视图的类定义,如果使用默认提供的空白界面(GosDeviceControlActivity)来进行编写控制界面,可略过此步骤。
2) 在控制界面中注册设备的监听,并实现回调,如图:
用于接收SDK上报的设备状态变化通知,将接收到的上报数据解析并更新界面。
3)控制界面中对当前设备设置监听,例如:device.setListener(gizWifiDeviceListener);
4)实现控制命令下发,需要调用SDK中GizWifiDevice类实例的接口方法:device.write(concurrentHashMap ,0); 具体参数解释,请参考SDK使用文档。
5)退出控制界面时,需要取消当前设备订阅,调用SDK中GizWifiDevice类实例的接口方法,将参数设为False: device.setSubscribe(false);
C. 设置界面增加菜单项及点击处理
如果需要在设置界面进行列表项的增加或修改,需要在activity_gos_settings.xml中添加相应控件,并在模块(SettingsModule)中的GosSettingsActivity.java文件中添加相应事件。
A. 支持Android版本?
目前支持Android 4.0及更高版本系统。
B. 关于修改版本号
在工程的AndroidManifest.xml 文件下,修改versionNmae即可更改SettingsModule模块下,关于界面的版本号显示。示例:
C. 关于推送与包名(以下使用集成极光推送示例)
在新建工程下,替换框架内模块使用时。需要将AndroidManifest.xml 文件package与申请推送时所填包名相对应,并修改集成推送时相应位置。示例:
与申请推送应用保持一致,示例:
修改集成推送的相应位置:
在工程的AndroidManifest.xml文件中修改
1)1
<permission android:name=”您应用的包名.permission.JPUSH_MESSAGE” android:protectionLevel=”signature” />
(详见开源APP套件的AndroidManifest.xml文件第13行)
2)
1 | <uses-permission android:name=”您应用的包名.permission.JPUSH_MESSAGE” /> |
(详见开源APP套件的AndroidManifest.xml文件第17行)
3)
1 | DaemonService下<category android:name=”您应用的包名” /> |
(详见开源APP套件的AndroidManifest.xml文件第159行)
4)
1 | PushPeceiver下<category android:name=”您应用的包名” /> |
(详见开源APP套件的AndroidManifest.xml文件第170行)
5)
1 | PushActivity下<category android:name=”您应用的包名” /> |
(详见开源APP套件的AndroidManifest.xml文件第193行)
6)
1 | JPushReceiver下<category android:name=”您应用的包名” /> |
(详见开源APP套件的AndroidManifest.xml文件第224行)
7)
1 | <meta-data android:name=”JPUSH_APPKEY” android:value=”Your AppKey” /> |
(详见开源APP套件的AndroidManifest.xml文件第240行)