概要
现阶段本产品只对小米生态链企业及合作伙伴正式开放.
使用说明
这里介绍如何配置和使用小米健康服务iOS客户端SDK,您也可以参照Demo来配置和使用小米健康服务。
在使用小米健康服务前,开发者需要先登录小米开发者网站http://developer.xiaomi.com。注册App,申请对应的AppID, AppKey 等等信息
其中AppID和AppKey是客户端的应用标识,在客户端SDK初始化时使用
搭建XCode运行环境
我们的libMiHealthKit库文件同时包含i386、x86_64、arm64、armv6和armv7的代码,所以libMiHealthKit将同时支持真机与模拟器。
MiHealthKit使用需要用到小米账号,请先集成小米账号 http://dev.xiaomi.com/docs/passport/user_guide/
小米健康服务IOS版支持的最低系统版本iOS5.0
添加libMiHealthKit.a , MiHealthKit.h 到工程
引入库 libz.dylib,CFNetwork.framework,CoreGraphics.framework (如果已经引入,请忽略)
配置SDK运行参数
运行SDK注册小米推送服务的时候,需要使用AppID,AppKey,等参数来验证使用者的合法性。
打开工程下资源文件Info.plist 文件为源代码形式打开,添加以下信息
MiSDKAppID
1000888
MiSDKAppKey
500088888888
MiSDKAppID, MiSDKAppKey 为在小米开发者网站http://developer.xiaomi.com。注册App,申请的AppID, AppKey
注册小米健康服务
当iOS客户端应用启动时,调用以下代码注册小米健康服务
// token 是从小米账号SDK获得
[MiHealthKit registerMiHealthKit:token delegate:self];
实现MiHealthKitDelegate回调
SDK中所有请求操作都是异步的。调用成功与失败都会通过MiHealthKitDelegate来通知。
在AppDelegate.h中加入MiHealthKitDelegate协议
#import "MiHealthKit.h"
//
@interface AppDelegate : UIResponder
<
MiHealthKitDelegate, //
UIApplicationDelegate
>
@property (strong, nonatomic) UIWindow *window;
@end
AppDelegate.m中实现回调方法
#pragma mark MiHealthKitDelegate
- (void)miHealthKitRequestSuccWithSelector:(NSString*)selector data:(NSDictionary *)data
{
// 请求成功
}
- (void)miHealthKitRequestErrWithSelector:(NSString*)selector data:(NSDictionary *)data
{
// 请求失败
}
GET/SET 健康数据
此版SDK支持如下功能
createDataSource, 创建数据源,并且该数据源对于该用户来说,必须是全局唯一的.
getDataSource, 携带dataSourceId,来获取该dataSourceId的data source.
listDataSource, 查询所有对用户可见的data sources. 用户可以查询其所有可见的data sources,也可以通过指定data type来查询特定类别的data sources.
deleteDataSource, 在请求URL中携带dataSourceId,来删除id值为该dataSourceId的data source.
updateDataSource, 更新某个特定data source的信息.
postDataSet, 客户端收集data points,把data points添加到datasets中,然后把dataset上传给服务端.
getDataSet, 该方法的path parameter中需要携带一个datasetId,该datasetId有startTime-endTime组成.
deleteDataSet, 删除某个特定时间段中的data point.
API说明
MiHealthKit.h 分两部分 @interface MiHealthKit ,@protocol MiHealthKitDelegate
@interface MiHealthKit : NSObject
MiHealthKit是小米健康服务在iOS平台的接入类。单实例。并提供了一系列静态方法。
API
功能
+ (void)registerMiHealthKit:(NSString*)token delegate:(id)delegate;
注册Kit, 提供小米账号系统生产的token.
+ (void)createDataSource:(MHMDataSource*)dataSource;
该接口用于创建数据源,并且该数据源对于该用户来说,必须是全局唯一的.
+ (void)getDataSource:(NSString*)dataSourceID;
在请求URL中携带dataSourceId,来获取id值为该dataSourceId的data source.
+ (void)listDataSource:(MHMDataType*)dataType;
查询所有对用户可见的data sources. 用户可以查询其所有可见的data sources,也可以通过指定data type来查询特定类别的datasources.
+ (void)deleteDataSource:(NSString*)dataSourceID;
在请求URL中携带dataSourceId,来删除id值为该dataSourceId的data source.
+ (void)updateDataSource:(NSString*)dataSourceID object:(MHMDataSource*)dataSource;
更新某个特定data source的信息.
+ (void)postDataSet:(NSArray*)array;
客户端收集data points,把data points添加到datasets中,然后把dataset上传给服务端.
+ (void)getDataSetWithDataSourceID:(NSString*)dataSourceID datasetID:(NSString*)dataSetID limit:(int)limit page:(int)page;
该方法的path parameter中需要携带一个datasetId,该datasetId有startTime-endTime组成.
+ (void)deleteDataSetWithDataSourceID:(NSString*)dataSourceID datasetID:(NSString*)dataSetID;
删除某个特定时间段中的data point.
@protocol MiHealthKitDelegate
MiHealthKitDelegate SDK的所有请求都是异步操作,用户需监听此方法。
API
功能
- (void)miHealthKitRequestSuccWithSelector:(NSString*)selector data:(NSDictionary *)data;
当请求成功时返回
- (void)miHealthKitRequestErrWithSelector:(NSString*)selector data:(NSDictionary *)data;
当请求失败时返回
方法详细说明
+ (void)registerMiHealthKit:(NSString*)token delegate:(id)delegate;
注册SDK, 提供小米账号系统生产的token。建议在程序启动时执行
- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary)launchOptions
参数列表
参数说明
(NSString*)token
小米账号获取的用户token
(id)delegate
加入请求成功与失败的监听
+ (void)createDataSource:(MHMDataSource*)dataSource;
该接口用于创建数据源,并且该数据源对于该用户来说,必须是全局唯一的.
在此方法中,数据源的data stream id不需要客户端提供,它会由服务端生成.
该接口每次可以创建一个data source.
参数列表
参数说明
(MHMDataSource*)dataSource
创建的dataSource模型
+ (void)getDataSource:(NSString*)dataSourceID;
在请求URL中携带dataSourceId,来获取id值为该dataSourceId的data source.
参数列表
参数说明
(NSString*)dataSourceID
获取的dataSourceID
+ (void)listDataSource:(MHMDataType*)dataType;
查询所有对用户可见的data sources.
用户可以查询其所有可见的data sources,也可以通过指定data type来查询特定类别的data sources.
参数列表
参数说明
(MHMDataType*)dataType
dataSource类型
+ (void)deleteDataSource:(NSString*)dataSourceID;
在请求URL中携带dataSourceId,来删除id值为该dataSourceId的data source.
参数列表
参数说明
(NSString*)dataSourceID
dataSourceID
+ (void)updateDataSource:(NSString)dataSourceID object:(MHMDataSource)dataSource;
更新某个特定data source的信息.
参数列表
参数说明
(NSString*)dataSourceID
原dataSouceID
(MHMDataSource*)dataSource
更新的datasource
+ (void)postDataSet:(NSArray*)array;
客户端收集data points,把data points添加到datasets中,然后把dataset上传给服务端.
dataset只是一个数据传输结构,服务端并不存储dataset本身,而只是存储dataset中包含的data points.
参数列表
参数说明
(NSArray*)array
上报的DataPoint数组
+ (void)getDataSetWithDataSourceID:(NSString)dataSourceID datasetID:(NSString)dataSetID limit:(int)limit page:(int)page;
该方法的path parameter中需要携带一个datasetId,该datasetId有startTime-endTime组成
该方法的响应报文中会包含一个dataset,dataset中包含所有endTimeNanos落在[startTime, endTime]区间的data point
参数列表
参数说明
(NSString*)dataSourceID
dataSourceID
(NSString*)dataSetID
dataSetID
(int)limit
分页数量
(int)page
第几页
+ (void)deleteDataSetWithDataSourceID:(NSString)dataSourceID datasetID:(NSString)dataSetID;
删除某个特定时间段中的data point.
endTimeNanos落在[startTime, endTime]中的data point将会被删除.
参数列表
参数说明
(NSString*)dataSourceID
dataSourceID
(NSString*)dataSetID
dataSetID
- (void)miHealthKitRequestSuccWithSelector:(NSString)selector data:(NSDictionary)data;
当请求成功后,会回调此方法
参数列表
参数说明
(NSString *)selector
请求调用方法的名称。例: "createDataSource:"
(NSDictionary *)data
请求后下发的服务器信息。
- (void)miHealthKitRequestErrWithSelector:(NSString)selector data:(NSDictionary)data;
当请求失败后,会回调此方法
参数列表
参数说明
(NSString *)selector
请求调用方法的名称。例: "createDataSource:"
(NSDictionary *)data
请求后下发的服务器信息。
错误码
错误码
说明
-1
访问超时,网络信号不好
-2
无网络
-3
未知错误,通常意味着MiPush服务器的业务错误
-4
操作太频繁
-5
请求无效参数
-6
返回结果无效
常见问题