|
@@ -1,167 +0,0 @@
|
|
-package com.siwei.recyclebox.ui.main;
|
|
|
|
-
|
|
|
|
-import android.annotation.SuppressLint;
|
|
|
|
-import android.app.Application;
|
|
|
|
-import android.content.Intent;
|
|
|
|
-import android.os.Build;
|
|
|
|
-import android.os.Handler;
|
|
|
|
-import android.os.Message;
|
|
|
|
-import android.support.annotation.NonNull;
|
|
|
|
-import android.support.annotation.RequiresApi;
|
|
|
|
-import android.util.Log;
|
|
|
|
-
|
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
|
-import com.aliyun.alink.apiclient.constants.MethodType;
|
|
|
|
-import com.aliyun.alink.linksdk.tmp.device.asynctask.MessageHandler;
|
|
|
|
-import com.aliyuncs.DefaultAcsClient;
|
|
|
|
-import com.aliyuncs.IAcsClient;
|
|
|
|
-import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
|
|
|
|
-import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
|
|
|
|
-import com.aliyuncs.exceptions.ClientException;
|
|
|
|
-import com.aliyuncs.profile.DefaultProfile;
|
|
|
|
-import com.aliyuncs.profile.IClientProfile;
|
|
|
|
-import com.siwei.recyclebox.deviceUtils.SerialPortUtil;
|
|
|
|
-import com.siwei.recyclebox.service.WarnService;
|
|
|
|
-
|
|
|
|
-import java.util.Timer;
|
|
|
|
-import java.util.TimerTask;
|
|
|
|
-
|
|
|
|
-import me.goldze.mvvmhabit.utils.SPUtils;
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-public class WarnActivity extends MainViewModel{
|
|
|
|
- String TAG="WarnActicity";
|
|
|
|
-
|
|
|
|
- private final Timer timer=new Timer();
|
|
|
|
- private TimerTask task;
|
|
|
|
-
|
|
|
|
- @SuppressLint("HandlerLeak")
|
|
|
|
-// Handler handler=new Handler(){
|
|
|
|
-// public void handleMessage(Message msg){
|
|
|
|
-// super.handleMessage(msg);
|
|
|
|
-// }
|
|
|
|
-// };
|
|
|
|
- Handler handler=new Handler(msg -> {
|
|
|
|
- return true;
|
|
|
|
- });
|
|
|
|
- @RequiresApi(api = Build.VERSION_CODES.O)
|
|
|
|
- public void onCreate(){
|
|
|
|
- super.onCreate();
|
|
|
|
- Intent service=new Intent(getApplication(), WarnService.class);
|
|
|
|
- getApplication().startService(service);
|
|
|
|
- task =new TimerTask(){
|
|
|
|
- public void run(){
|
|
|
|
- publishRepeat();
|
|
|
|
- }
|
|
|
|
- };
|
|
|
|
- timer.schedule(task,60000,60000);
|
|
|
|
- }
|
|
|
|
- public WarnActivity(@NonNull Application application) {
|
|
|
|
- super(application);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- private void publishRepeat(){
|
|
|
|
- //每隔一段时间检测磁控和温度 如果异常就上报(前提是有网条件下)
|
|
|
|
-// Thread thread=new Thread(new Runnable() {
|
|
|
|
-// @Override
|
|
|
|
-// public void run() {
|
|
|
|
- Integer currentTemperature= SerialPortUtil.getInstance().getOtherDevice().geTemperature();//温度
|
|
|
|
- Integer magDoorSwitch=SerialPortUtil.getInstance().getOtherDevice().queryMagDoor();
|
|
|
|
- if(currentTemperature>90){
|
|
|
|
- SPUtils.getInstance().put("RunningState","2");//温度过高
|
|
|
|
- Log.i(TAG,"温度过高");
|
|
|
|
- Integer networkInt=netWorkInfo();
|
|
|
|
- if(networkInt!=0){
|
|
|
|
- reportProperty(1);
|
|
|
|
- //短信通知
|
|
|
|
- try {
|
|
|
|
- SendSmsResponse("温度过高");
|
|
|
|
- } catch (ClientException e) {
|
|
|
|
- e.printStackTrace();
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- if(magDoorSwitch==1){
|
|
|
|
- if(SPUtils.getInstance().getString("magDoorSwitch").equals("0")){
|
|
|
|
- SPUtils.getInstance().put("RunningState","3");
|
|
|
|
- Log.i(TAG,"收运门意外打开");
|
|
|
|
- Integer networkInt=netWorkInfo();
|
|
|
|
- if(networkInt!=0){
|
|
|
|
- reportProperty(1);
|
|
|
|
- //短信通知
|
|
|
|
- try {
|
|
|
|
- SendSmsResponse("收运门意外打开");
|
|
|
|
- } catch (ClientException e) {
|
|
|
|
- e.printStackTrace();
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- if(currentTemperature<100&magDoorSwitch==0) {
|
|
|
|
- SPUtils.getInstance().put("RunningState","0");
|
|
|
|
- }
|
|
|
|
-// }
|
|
|
|
-// });
|
|
|
|
-// thread.start();
|
|
|
|
-// mHandler.postDelayed(new Runnable() {
|
|
|
|
-// @Override
|
|
|
|
-// public void run() {
|
|
|
|
-// publishRepeat();
|
|
|
|
-// }
|
|
|
|
-// }, 300000);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static void SendSmsResponse(String event) throws ClientException {
|
|
|
|
-
|
|
|
|
- //设置超时时间-可自行调整
|
|
|
|
- System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
|
|
|
|
- System.setProperty("sun.net.client.defaultReadTimeout", "10000");
|
|
|
|
-//初始化ascClient需要的几个参数
|
|
|
|
- final String product = "Dysmsapi";//短信API产品名称(短信产品名固定,无需修改)
|
|
|
|
- final String domain = "dysmsapi.aliyuncs.com";//短信API产品域名(接口地址固定,无需修改)
|
|
|
|
-//替换成你的AK
|
|
|
|
- final String accessKeyId = "yourAccessKeyId";//你的accessKeyId,参考本文档步骤2
|
|
|
|
- final String accessKeySecret = "yourAccessKeySecret";//你的accessKeySecret,参考本文档步骤2
|
|
|
|
-//初始化ascClient,暂时不支持多region(请勿修改)
|
|
|
|
- IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId,
|
|
|
|
- accessKeySecret);
|
|
|
|
- DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
|
|
|
|
- IAcsClient acsClient = new DefaultAcsClient(profile);
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- //组装请求对象
|
|
|
|
- SendSmsRequest request = new SendSmsRequest();
|
|
|
|
- //使用post提交
|
|
|
|
-// request.setMethod(MethodType.POST);
|
|
|
|
- //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式;发送国际/港澳台消息时,接收号码格式为国际区号+号码,如“85200000000”
|
|
|
|
- request.setPhoneNumbers("18116680579");
|
|
|
|
- //必填:短信签名-可在短信控制台中找到
|
|
|
|
- request.setSignName("云通信");
|
|
|
|
- //必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版
|
|
|
|
- request.setTemplateCode("SMS_185241516");
|
|
|
|
- //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
|
|
|
|
- //友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败
|
|
|
|
-
|
|
|
|
- JSONObject jsono=new JSONObject();
|
|
|
|
- jsono.put("DeviceId", SPUtils.getInstance().getString("IMEI"));
|
|
|
|
- jsono.put("DeviceName", event);
|
|
|
|
- request.setTemplateParam(String.valueOf(jsono));
|
|
|
|
- //可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)
|
|
|
|
- //request.setSmsUpExtendCode("90997");
|
|
|
|
-
|
|
|
|
- //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
|
|
|
|
-// request.setOutId("yourOutId");
|
|
|
|
- //请求失败这里会抛ClientException异常
|
|
|
|
- SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
|
|
|
|
- System.out.println("短信接口返回的数据----------------");
|
|
|
|
- System.out.println("Code=" + sendSmsResponse.getCode());
|
|
|
|
- System.out.println("Message=" + sendSmsResponse.getMessage());
|
|
|
|
- System.out.println("RequestId=" + sendSmsResponse.getRequestId());
|
|
|
|
- System.out.println("BizId=" + sendSmsResponse.getBizId());
|
|
|
|
- if(sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {
|
|
|
|
-//请求成功
|
|
|
|
- Log.i("TAG","短信发送成功");
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-}
|
|
|