我们已经在菜卡论坛上面,发布了我们对安卓APP的部分函数教程,那么,就有热心求学的吃瓜群众一定想知道华为云API怎么玩呢?接下来的内容,就能解答这一个问题了。基本上看完我们发布的针对ProjectX文章,你也能做出使用小熊派开发板玩转鸿蒙开发的事情了~
我们在写Android时,使用了3个华为云API:获取IAM用户Token(使用密码)、查询设备影子数据、下发设备命令
KeystoneCreateUserTokenByPassword 获取IAM用户Token(使用密码)
当然是我们创建一个IAM账号,然后使用这个账号获取Token呀。
华为云API调试地址:https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IAM&api=KeystoneCreateUserTokenByPassword
需要填写的东西。
POST提交,https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens。
Header信息:
Content-Type:application/json;charset=utf-8
Body信息:
application/json
{
"auth": {
"identity": {
"methods": [
"password"
],
"password": {
"user": {
"domain": {
"name": "IAM用户所属帐号信息。"
},
"name": "IAM用户名。",
"password": "IAM用户的登录密码。"
}
}
},
"scope": {
"domain": {
"name": "IAM用户名。"
}
}
}
}
想要获取IAM信息?点我查看!
ShowDeviceShadow 查询设备影子数据
得到了Token,是不是就要得到设备数据啦,那么就开始吧!
华为云API调试地址:https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IoTDA&api=ShowDeviceShadow
需要填写的东西。
GET提交,https://iotda.cn-north-4.myhuaweicloud.com/v5/iot/{project_id}/devices/{device_id}/shadow。
project_id是项目ID(华为云里俗称区域ID)点我查看怎么获取的!
device_id是硬件ID,也就是创建设备可得到的ID。
Header信息:
Content-Type:application/json
X-Auth-Token:获得到的TOKEN,在上面获取IAM用户TOKEN,得到的响应体的x-subject-token里。
然后就能GET提交了。返回值在:shadow.reported.properties。
列举一下光照板返回值:
"properties": {
"Luminance": 20,
"LightStatus": "ON"
},
CreateCommand 下发设备命令
然后我们是不是要控制传感器呀?简单~这个API,这不就来了嘿嘿。
华为云API调试地址:https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IoTDA&api=CreateCommand
需要填写的东西。
POST提交,https://iotda.cn-north-4.myhuaweicloud.com/v5/iot/{project_id}/devices/{device_id}/commands
project_id是项目ID(华为云里俗称区域ID)点我查看怎么获取的!
device_id是硬件ID,也就是创建设备可得到的ID。
Header信息:
X-Auth-Token:获得到的TOKEN,在上面获取IAM用户TOKEN,得到的响应体的x-subject-token里。
然后就能POST提交了,那么这里就得注意了:
❗注意:此接口适用于MQTT设备同步命令下发,暂不支持NB-IoT设备命令下发。
该怎么办呢?简单,我们用Android APP来写!
Tips:摘自Android APP 包目录:com.haohanyh.hamos.projectx.ImportActivity 里面的任意一个Activity的ControlSenderHUAWEIXXXXXX函数。请结合ProjectX项目阅读该下面内容~
RequestBody body = RequestBody.create(MediaType.parse("application/json;charset=utf-8"), json);
Request request = new Request.Builder()
.url("https://iotda.cn-north-4.myhuaweicloud.com/v5/iot/" + project_id + "/devices/" + device_id + "/commands")
.addHeader("X-Auth-Token",HUAWEITOKEN)
.post(body)
.build();
OkHttpClient mOkHttpClient = new OkHttpClient();
mOkHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
System.out.println("浩瀚银河ControlSenderHUAWEIBeta函数灰度测试: " + e.getLocalizedMessage() + ",灰度测试失败");
}
@Override
public void onResponse(Call call, Response response) throws IOException {
System.out.println("浩瀚银河ControlSenderHUAWEIBeta函数链接灰度测试: " + response.body().string());
System.out.println("出现以上信息,说明传值到华为云,再到开发板,同时到APP上显示情况,成功");
}
});