首页 小组 话题 唠叨 搜索 文章 相册 我的社区 用户

华为云loTDA[HuaweiCloud 华为云设备接入]ProjectX里的安卓APP是怎么开发出来之华为云API?

2022-07-18 18:04:51
4
272

我们已经在菜卡论坛上面,发布了我们对安卓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上显示情况,成功");
    }
});










扫码_白.png
评论 (4)