ProjectY,2.0.362版本,重新定义“小熊派护花使者” 原创 精华
我们上一篇文章:https://ost.51cto.com/posts/14778
我们的Github:点我
我们的Gitee:点我
发行版页面:点我
2022年7月24号,历经了两天两夜的开发,我们成功的解决了NFC场景交互,至此,我们的版本号,也被推进到了2.0.362版本。
这一个版本,是我们的多次灰度测试的稳定版,并且解决了各类Bug,基本上在很多环节,已经真正的“自动化”了。
同时,我们还希望通过这一次的文章发布,来讲述一下项目使用。
首先,我们需要进入两个Java里面,填写你们的华为云账号信息和小熊派护花使者需要连接的WIFI:
com.haohanyh.hamos.huawei.Huawei
protected final String JsonDomainName = "";
protected final String JsonName = "";
protected final String JsonPassword = "";
com.haohanyh.hamos.projecty.MainActivity
private String WPA_address = "";
private String WPA_pwd = "";
其余的,就交给自动化函数吧。毕竟没有什么,是自动化函数联动做不到的,如果有那就得再写一份哈哈哈。
对于APP使用,其实也很简单:++我们先进入一个页面,因为需要走自动化代码,然后进入NFC页面,写入数据。写入成功后我们就可以跳转到主页面,获取华为云账号了。++
以上就是我们2.0.362版本的使用和更新介绍,接下来就讲讲华为云API和NFC联动,我们是怎么做到全自动化的?
com.haohanyh.hamos.huawei.Huawei
第一步,public String CreateJsonToKnowtokenneedpost(),弄好账号JSON数据交给下一步POST提交。
第二步,public void Knowtokenneedpost(),获取X-Auth-Token。
第三步,public String CreateJsonToKnowDomainidneedpose(String json),获取该华为账号在北京4区的Domain_id,这个很重要,因为我们需要创建产品硬件等东西在里面。
第四步,public String CreateStringToCreateProductinIoTDAneedpost(),弄好护花使者产品的JSON数据,里面包含了护花使者需要提交的传感器数据和命令。
第五步,public void CreateProductinIoTDAneedpost(),创建产品。
第六步,public String CreateStringToCreateDeviceIoTDAneedpost(),弄好护花使者硬件的JSON数据,里面包含了传感器数据、命令的上报值,⚠我这里没有设置期望值。
第七步,public void CreateDeviceIoTDAneedpost(),创建IoTDA设备。
第八步,public void CreateStringToSearchDeviceIoTDAneedget(String content),因为上面两个创建函数,可能后期会报400错误但已经在华为云IoTDA里面了,所以我们进行比较,如果有那么就第九步(其实这一步100%可以的,只是我觉得需要安全点,写了这个判断)
第八步的里面,还有一个函数,public boolean HaohanyhOranMeCDNDecideData(String Url, String S_data_device_id, String data_node_id, String data_product_id, String S_data_product_name) throws JSONException,这个里面是我们去服务器上下载JSON参数,进行逐一比较。
第九步,public void ResetSecretneedpost(),重置一下密钥。
至此这几步,我们就得到了产品名称、设备ID、设备密钥,再结合运行前写入代码的Wi-Fi地址、Wi-Fi密钥,我们写入护花使者NFC里。
com.haohanyh.hamos.projecty.MainActivity
private void Data() {
...
ToBearPiJSON = "{\"product\": \""+ Product_name +"\",\"device_id\": \""+Device_info+"\",\"secret\": \""+ Device_secret +"\",\"ssid\": \""+ WPA_address +"\",\"pwd\": \""+ WPA_pwd +"\"}";
}
com.haohanyh.hamos.projecty.NFCActivity
(过滤词使用$$$)
protected void onCreate(@Nullable Bundle savedInstanceState) {
...
NfcData.post(new Runnable() {@Override public void run() { NfcData.setText(getToBearPiJSON());NfcData.setText($$$JSON()); }});
}
protected void onNewIntent(Intent intent) {
...
String text = NfcData.getText().toString();
boolean ret = nfcHelper.writeNFC_NDEF(intent, text);
}
虽然目前,2.0.362版本,我们NFC需要点击才能写入,但是我们在接下来的优化里,会着重处理。
一定要让这样的过程,能够无缝对接,这才是我们想要的ProjectY,这才是大家想要的ProjectY。
第一篇文章先写到这里,接下来我们还会以ProjectY做更新文章。
宝藏楼主,果断关注一波
谢谢QwQ~
谢谢分享!