Showing
15 changed files
with
559 additions
and
579 deletions
| @@ -233,7 +233,7 @@ public class SmartControlService extends BaseService implements EventListener<St | @@ -233,7 +233,7 @@ public class SmartControlService extends BaseService implements EventListener<St | ||
| 233 | @Subscribe(threadMode = ThreadMode.MAIN) | 233 | @Subscribe(threadMode = ThreadMode.MAIN) |
| 234 | public void onMoonEvent(MessageEvent messageEvent) { | 234 | public void onMoonEvent(MessageEvent messageEvent) { |
| 235 | switch (messageEvent.getEventId()) { | 235 | switch (messageEvent.getEventId()) { |
| 236 | - case SocketService.JUST_OPEN_DOOR: | 236 | + case SocketService1.JUST_OPEN_DOOR: |
| 237 | //check qr code is showing | 237 | //check qr code is showing |
| 238 | openDoor(); | 238 | openDoor(); |
| 239 | if (ActivityCollector.isActivityExist(QrCodeShowActivity.class) | 239 | if (ActivityCollector.isActivityExist(QrCodeShowActivity.class) |
| @@ -269,13 +269,13 @@ public class SmartControlService extends BaseService implements EventListener<St | @@ -269,13 +269,13 @@ public class SmartControlService extends BaseService implements EventListener<St | ||
| 269 | } | 269 | } |
| 270 | } | 270 | } |
| 271 | break; | 271 | break; |
| 272 | - case SocketService.USER_OPEN_DOOR_AND_GET_MOVIE: | 272 | + case SocketService1.USER_OPEN_DOOR_AND_GET_MOVIE: |
| 273 | needReport = true; | 273 | needReport = true; |
| 274 | openDoor(); | 274 | openDoor(); |
| 275 | presenter.getOrderInfo(this); | 275 | presenter.getOrderInfo(this); |
| 276 | Log.i("event bus", "user open door" + messageEvent.getMessage()); | 276 | Log.i("event bus", "user open door" + messageEvent.getMessage()); |
| 277 | break; | 277 | break; |
| 278 | - case SocketService.USER_OPEN_DOOR: | 278 | + case SocketService1.USER_OPEN_DOOR: |
| 279 | needReport = true; | 279 | needReport = true; |
| 280 | openDoor(); | 280 | openDoor(); |
| 281 | Log.i("event bus", "user open door" + messageEvent.getMessage()); | 281 | Log.i("event bus", "user open door" + messageEvent.getMessage()); |
| 1 | -package com.qnbar.smc.service; | ||
| 2 | - | ||
| 3 | -import android.app.Service; | ||
| 4 | -import android.content.Context; | ||
| 5 | -import android.content.Intent; | ||
| 6 | -import android.os.IBinder; | ||
| 7 | -import android.text.TextUtils; | ||
| 8 | -import android.util.Log; | ||
| 9 | -import android.widget.Toast; | ||
| 10 | -import com.gimi.common.cinema.model.MessageEvent; | ||
| 11 | -import com.gimi.common.cinema.model.RoomInfo; | ||
| 12 | -import com.gimi.common.cinema.utils.SystemUtils; | ||
| 13 | -import com.gimi.common.cinema.utils.Utils; | ||
| 14 | -import com.google.gson.Gson; | ||
| 15 | -import com.google.gson.JsonSyntaxException; | ||
| 16 | -import com.qnbar.smc.utils.LightOperationUtils; | ||
| 17 | -import com.xgimi.gimicinema.activity.QrCodeShowActivity; | ||
| 18 | -import com.xgimi.gimicinema.application.FangTangApplication; | ||
| 19 | -import com.xgimi.smartscreen.encrypt.AuthCode; | ||
| 20 | -import org.greenrobot.eventbus.EventBus; | ||
| 21 | - | ||
| 22 | -import java.io.IOException; | ||
| 23 | -import java.io.InputStream; | ||
| 24 | -import java.io.OutputStream; | ||
| 25 | -import java.lang.ref.WeakReference; | ||
| 26 | -import java.net.Socket; | ||
| 27 | -import java.util.Arrays; | ||
| 28 | - | ||
| 29 | -public class SocketService extends Service { | ||
| 30 | - private static final String TAG = "BackService"; | ||
| 31 | - private static final long HEART_BEAT_RATE = 5 * 1000; | ||
| 32 | - | ||
| 33 | - public static final int JUST_OPEN_DOOR = 1701; | ||
| 34 | - public static final int USER_OPEN_DOOR_AND_GET_MOVIE = 1703; | ||
| 35 | - public static final int USER_OPEN_DOOR = 1704;//get the movie again charge show new movie | ||
| 36 | - // public static final int USER_OPEN_DOOR_AND_GET_MOVIE = 1703; | ||
| 37 | - /* | ||
| 38 | - * 10001 //服务器发送了命令(带命令的返回消息),这个一般是服务器主动发消息的时候code为这个值 | ||
| 39 | - 10002 //连接(认证)失败 | ||
| 40 | - 10003 //还未注册连接就进行认证 | ||
| 41 | - 10004 //终端编号未传 | ||
| 42 | - 10005 //心跳异常,没有找到房间连接信息 | ||
| 43 | - 10006 //心跳异常,连接标识符不一致 | ||
| 44 | - 10007 //收到未知命令 | ||
| 45 | - 10008 //收到无法解析的消息 | ||
| 46 | - 10009 //已经认证过了,不允许再认证 | ||
| 47 | - 10010 //room_sn 已连接,不能再连接 | ||
| 48 | - */ | ||
| 49 | - private static final int VERIFY_SUCCESS = 9999; | ||
| 50 | - private static final int SUCCESS_MESSAGE = 10000; | ||
| 51 | - private static final int CONTAIN_MESSAGE = 10001; | ||
| 52 | - private static final int AUTHENTICATION_FAILED = 10002; //连接(认证)失败 | ||
| 53 | - private static final int CONNECTION_BEFORE_AUTHENTICATION = 10003;//还未注册连接就进行认证 | ||
| 54 | - private static final int NOT_SEND_ROOM_SN = 10004;//终端编号未传 | ||
| 55 | - private static final int HEART_BEAR_ERROR = 10005; //心跳异常,没有找到房间连接信息 | ||
| 56 | - private static final int HEART_BEAR_ERROR_SYMBOL = 10006;//心跳异常,连接标识符不一致 | ||
| 57 | - private static final int OPEN_DOOR = 50001;//开门命令 | ||
| 58 | - private static final int CLEAN_OVER = 50002;// | ||
| 59 | - | ||
| 60 | - private static final int ROOM_HAS_REGISTERED = 1001; | ||
| 61 | - private static final int ROOM_NOT_EXIST_M = 1002; | ||
| 62 | - private static final int HEAT_BEAT_RTN = 1003; | ||
| 63 | - | ||
| 64 | - // online | ||
| 65 | - public static final String SERVER_HOST_ONLINE = "conn.ft.qnbar.com";// "192.168.1.21";// | ||
| 66 | - public static final int SERVER_PORT_ONLINE = 8899; | ||
| 67 | - | ||
| 68 | - // develop | ||
| 69 | - public static final String SERVER_HOST_DEVELOP = "10.10.4.6";// "192.168.1.21";// | ||
| 70 | - public static final int SERVER_PORT_DEVELOP = 9501; | ||
| 71 | - // test | ||
| 72 | - public static final String SERVER_HOST = "10.10.4.6";// "192.168.1.21";// | ||
| 73 | - public static final int SERVER_PORT = 8899; | ||
| 74 | - | ||
| 75 | - private String serverHost = SERVER_HOST; | ||
| 76 | - private int serverPort = SERVER_PORT; | ||
| 77 | - | ||
| 78 | - | ||
| 79 | - public static final String END_SYMBOL = "\\r\\n\\r\\n";//心跳包内容 | ||
| 80 | - // public String testRoomSn = "R170413034374"; | ||
| 81 | - public String testRoomSn = "c"; | ||
| 82 | - | ||
| 83 | - private ReadThread mReadThread; | ||
| 84 | - private HeatBeatThread mHeatBeatThread; | ||
| 85 | - private Gson gson; | ||
| 86 | - | ||
| 87 | -// private LocalBroadcastManager mLocalBroadcastManager; | ||
| 88 | - | ||
| 89 | - private WeakReference<Socket> mSocket; | ||
| 90 | - | ||
| 91 | - // For heart Beat | ||
| 92 | -// private Handler mHandler = new Handler(); | ||
| 93 | -// private Runnable heartBeatRunnable = new Runnable() { | ||
| 94 | -// | ||
| 95 | -// @Override | ||
| 96 | -// public void run() { | ||
| 97 | -// if (System.currentTimeMillis() - sendTime >= HEART_BEAT_RATE) { | ||
| 98 | -// Log.d(TAG, "heart beat"); | ||
| 99 | -// boolean isSuccess = sendMsg(new Gson().toJson(new SocketSendMsg().contractHeartBeatMsg(testRoomSn)) + END_SYMBOL);//就发送一个HEART_BEAT_STRING过去 如果发送失败,就重新初始化一个socket | ||
| 100 | -// if (!isSuccess) { | ||
| 101 | -// Log.d(TAG, "heart beat error restart"); | ||
| 102 | -// mHandler.removeCallbacks(heartBeatRunnable); | ||
| 103 | -// mReadThread.release(); | ||
| 104 | -// mHeatBeatThread.release(); | ||
| 105 | -// releaseLastSocket(mSocket); | ||
| 106 | -// new InitSocketThread().start(); | ||
| 107 | -// } | ||
| 108 | -// } else { | ||
| 109 | -// Log.d(TAG, "heart beat less than beat rate"); | ||
| 110 | -// } | ||
| 111 | -// mHandler.postDelayed(this, HEART_BEAT_RATE); | ||
| 112 | -// } | ||
| 113 | -// }; | ||
| 114 | - | ||
| 115 | - private long sendTime = 0L; | ||
| 116 | - private Context context; | ||
| 117 | - | ||
| 118 | - @Override | ||
| 119 | - public IBinder onBind(Intent arg0) { | ||
| 120 | - return null; | ||
| 121 | - } | ||
| 122 | - | ||
| 123 | - @Override | ||
| 124 | - public void onCreate() { | ||
| 125 | - super.onCreate(); | ||
| 126 | - gson = new Gson(); | ||
| 127 | - context = this; | ||
| 128 | - } | ||
| 129 | - | ||
| 130 | - @Override | ||
| 131 | - public int onStartCommand(Intent intent, int flags, int startId) { | ||
| 132 | - int ftTest = Utils.getInt(this, "ft-test", 0); | ||
| 133 | - switch (ftTest) { | ||
| 134 | - case 0: | ||
| 135 | - serverHost = SERVER_HOST_ONLINE; | ||
| 136 | - serverPort = SERVER_PORT_ONLINE; | ||
| 137 | - break; | ||
| 138 | - case 1: | ||
| 139 | - serverHost = SERVER_HOST_DEVELOP; | ||
| 140 | - serverPort = SERVER_PORT_DEVELOP; | ||
| 141 | - break; | ||
| 142 | - case 2: | ||
| 143 | - serverHost = SERVER_HOST; | ||
| 144 | - serverPort = SERVER_PORT; | ||
| 145 | - break; | ||
| 146 | - } | ||
| 147 | - | ||
| 148 | - String roomInfoStr = Utils.getString(this, "room-info"); | ||
| 149 | - if (!TextUtils.isEmpty(roomInfoStr)) { | ||
| 150 | - Log.d("room-info", "room info not null"); | ||
| 151 | - RoomInfo roomInfo = null; | ||
| 152 | - try { | ||
| 153 | - roomInfo = gson.fromJson(roomInfoStr, RoomInfo.class); | ||
| 154 | - Log.d("room-info", "room info room_sn update"); | ||
| 155 | - testRoomSn = roomInfo.getData().getRoom_sn(); | ||
| 156 | - } catch (JsonSyntaxException e) { | ||
| 157 | - Log.d("room-info", "room gson parse exception return"); | ||
| 158 | - Toast.makeText(this, "房间信息配置出错,请重新进入应用获取", Toast.LENGTH_SHORT).show(); | ||
| 159 | - e.printStackTrace(); | ||
| 160 | - return super.onStartCommand(intent, flags, startId); | ||
| 161 | - } | ||
| 162 | - } else { | ||
| 163 | - Log.d("room-info", "room info not exist"); | ||
| 164 | - Toast.makeText(this, "没有获取到房间信息,请查看后台配置", Toast.LENGTH_SHORT).show(); | ||
| 165 | - return super.onStartCommand(intent, flags, startId); | ||
| 166 | - } | ||
| 167 | -// } | ||
| 168 | - new InitSocketThread().start(); | ||
| 169 | - Log.d(TAG, "socket service onCreate"); | ||
| 170 | - return super.onStartCommand(intent, flags, startId); | ||
| 171 | - } | ||
| 172 | - | ||
| 173 | - public boolean sendMsg(String msg) { | ||
| 174 | - if (null == mSocket || null == mSocket.get()) { | ||
| 175 | - return false; | ||
| 176 | - } | ||
| 177 | - Log.d(TAG, "send msg:" + msg); | ||
| 178 | - Socket soc = mSocket.get(); | ||
| 179 | - try { | ||
| 180 | - if (!soc.isClosed() && !soc.isOutputShutdown()) { | ||
| 181 | - OutputStream os = soc.getOutputStream(); | ||
| 182 | - String message = msg; | ||
| 183 | - os.write(message.getBytes()); | ||
| 184 | - os.flush(); | ||
| 185 | - sendTime = System.currentTimeMillis();//每次发送成数据,就改一下最后成功发送的时间,节省心跳间隔时间 | ||
| 186 | - } else { | ||
| 187 | - return false; | ||
| 188 | - } | ||
| 189 | - } catch (IOException e) { | ||
| 190 | - e.printStackTrace(); | ||
| 191 | - return false; | ||
| 192 | - } | ||
| 193 | - return true; | ||
| 194 | - } | ||
| 195 | - | ||
| 196 | - private void initSocket() throws IOException {//初始化Socket | ||
| 197 | - Log.d(TAG, "serverHost:serverPort:" + serverHost + ":" + serverPort); | ||
| 198 | - Socket so = new Socket(serverHost, serverPort); | ||
| 199 | - mSocket = new WeakReference<Socket>(so); | ||
| 200 | - mReadThread = new ReadThread(so); | ||
| 201 | - mReadThread.start(); | ||
| 202 | -// new Thread(heartBeatRunnable).start(); | ||
| 203 | -// mHandler.post(heartBeatRunnable);//初始化成功后,就准备发送心跳包 | ||
| 204 | - mHeatBeatThread = new HeatBeatThread(so); | ||
| 205 | -// mHeatBeatThread.start();//上面的 one plus 3t NetworkOnMainThreadException!!! | ||
| 206 | - } | ||
| 207 | - | ||
| 208 | - | ||
| 209 | - private void releaseLastSocket(WeakReference<Socket> mSocket) { | ||
| 210 | - try { | ||
| 211 | - if (null != mSocket) { | ||
| 212 | - Socket sk = mSocket.get(); | ||
| 213 | - if (!sk.isClosed()) { | ||
| 214 | - sk.close(); | ||
| 215 | - } | ||
| 216 | - sk = null; | ||
| 217 | - mSocket = null; | ||
| 218 | - } | ||
| 219 | - } catch (IOException e) { | ||
| 220 | - e.printStackTrace(); | ||
| 221 | - } | ||
| 222 | - } | ||
| 223 | - | ||
| 224 | - class InitSocketThread extends Thread { | ||
| 225 | - @Override | ||
| 226 | - public void run() { | ||
| 227 | - super.run(); | ||
| 228 | - try { | ||
| 229 | - initSocket(); | ||
| 230 | - } catch (IOException e) { | ||
| 231 | - e.printStackTrace(); | ||
| 232 | - Log.d(TAG, "init socket thread error,restart again after 10's"); | ||
| 233 | - try { | ||
| 234 | - Thread.sleep(HEART_BEAT_RATE); | ||
| 235 | - } catch (InterruptedException e1) { | ||
| 236 | - e1.printStackTrace(); | ||
| 237 | - } | ||
| 238 | - this.run(); | ||
| 239 | - } | ||
| 240 | - } | ||
| 241 | - } | ||
| 242 | - | ||
| 243 | - private String varifyMsg = ""; | ||
| 244 | - | ||
| 245 | - // Thread to read content from Socket | ||
| 246 | - class ReadThread extends Thread { | ||
| 247 | - private WeakReference<Socket> mWeakSocket; | ||
| 248 | - private boolean isStart = true; | ||
| 249 | - | ||
| 250 | - public ReadThread(Socket socket) { | ||
| 251 | - mWeakSocket = new WeakReference<Socket>(socket); | ||
| 252 | - } | ||
| 253 | - | ||
| 254 | - public void release() { | ||
| 255 | - isStart = false; | ||
| 256 | - releaseLastSocket(mWeakSocket); | ||
| 257 | - } | ||
| 258 | - | ||
| 259 | - @Override | ||
| 260 | - public void run() { | ||
| 261 | - super.run(); | ||
| 262 | - Socket socket = mWeakSocket.get(); | ||
| 263 | - if (null != socket) { | ||
| 264 | - try { | ||
| 265 | - if (!sendRegister) { | ||
| 266 | - Log.d(TAG, "send register mes"); | ||
| 267 | - SocketSendMsg ssm = new SocketSendMsg().contractRegisterMsg(testRoomSn); | ||
| 268 | - String msg = gson.toJson(ssm) + END_SYMBOL; | ||
| 269 | - sendMsg(msg); | ||
| 270 | - Log.d(TAG, "" + msg); | ||
| 271 | - sendRegister = true; | ||
| 272 | - } | ||
| 273 | - Log.d(TAG, "send register mes end"); | ||
| 274 | - InputStream is = socket.getInputStream(); | ||
| 275 | - byte[] buffer = new byte[1024 * 4]; | ||
| 276 | - int length = 0; | ||
| 277 | - while (!socket.isClosed() && !socket.isInputShutdown() | ||
| 278 | - && isStart && ((length = is.read(buffer)) != -1)) { | ||
| 279 | - if (length > 0) { | ||
| 280 | - String message = new String(Arrays.copyOf(buffer, | ||
| 281 | - length)).trim(); | ||
| 282 | - Log.d(TAG, "end:" + message.contains(END_SYMBOL) + ""); | ||
| 283 | - Log.d(TAG, "recv msg:" + message); | ||
| 284 | - try { | ||
| 285 | - if (message.endsWith(END_SYMBOL)) { | ||
| 286 | - message = message.replace(END_SYMBOL, ""); | ||
| 287 | - } | ||
| 288 | - SocketResponse socketResponse = gson.fromJson(message/*.substring(0, message.length() - 8)*/, SocketResponse.class); | ||
| 289 | - switch (socketResponse.getCode()) { | ||
| 290 | - case SUCCESS_MESSAGE: | ||
| 291 | - Log.d(TAG, "success:" + socketResponse.getCmd()); | ||
| 292 | - if (!TextUtils.isEmpty(socketResponse.getData().getVerify())) { | ||
| 293 | - varifyMsg = AuthCode.getDecodeStr(socketResponse.getData().getVerify()); | ||
| 294 | - SocketSendMsg ssm = new SocketSendMsg().contractVerifyMsg(testRoomSn, varifyMsg); | ||
| 295 | - String msg = gson.toJson(ssm) + END_SYMBOL; | ||
| 296 | - sendMsg(msg); | ||
| 297 | - } | ||
| 298 | - break; | ||
| 299 | - case VERIFY_SUCCESS: | ||
| 300 | - Log.d(TAG, "VERIFY_SUCCESS:" + socketResponse.getCmd()); | ||
| 301 | - mHeatBeatThread.start();//上面的 one plus 3t NetworkOnMainThreadException!!! | ||
| 302 | - Log.d(TAG, "verify success start heart beat"); | ||
| 303 | - break; | ||
| 304 | - case CONTAIN_MESSAGE: | ||
| 305 | - if (socketResponse.getData() != null) { | ||
| 306 | - if (socketResponse.getCmd() == OPEN_DOOR) { | ||
| 307 | -// new SystemUtils().openFtLed(context.getApplicationContext()); | ||
| 308 | - switch (socketResponse.getData().getUser()) { | ||
| 309 | - //10用户,20管理员,默认值为0 | ||
| 310 | - case 10: | ||
| 311 | - new SystemUtils().openFtLed(context.getApplicationContext()); | ||
| 312 | - if (TextUtils.isEmpty(((FangTangApplication) getApplication()).getCurrentPlayUrl())) { | ||
| 313 | - LightOperationUtils.open(); | ||
| 314 | - LightOperationUtils.setLightValue(Utils.getInt(context, "brightness", 50)); | ||
| 315 | - } | ||
| 316 | - sendMessage(QrCodeShowActivity.KILL_SELF, "finish the QR CODE activity when new user come in"); | ||
| 317 | - if (socketResponse.getData().getFirst() == 1) { | ||
| 318 | -// LightOperationUtils.open(); | ||
| 319 | -// LightOperationUtils.setLightValue(Utils.getInt(context, "brightness", 50)); | ||
| 320 | - sendMessage(USER_OPEN_DOOR_AND_GET_MOVIE, "user first open the door"); | ||
| 321 | - } else { | ||
| 322 | - sendMessage(USER_OPEN_DOOR, "user open the door"); | ||
| 323 | - } | ||
| 324 | - break; | ||
| 325 | - case 20: | ||
| 326 | - if (TextUtils.isEmpty(((FangTangApplication) getApplication()).getCurrentPlayUrl())) { | ||
| 327 | - Log.d("LightOperationUtils", "admin open light"); | ||
| 328 | - LightOperationUtils.open(); | ||
| 329 | - LightOperationUtils.setLightValue(Utils.getInt(context, "brightness", 50)); | ||
| 330 | - } | ||
| 331 | - sendMessage(JUST_OPEN_DOOR, "administrator open the door"); | ||
| 332 | - break; | ||
| 333 | - case 0: | ||
| 334 | - sendMessage(JUST_OPEN_DOOR, "get zero none user or administrator open the door"); | ||
| 335 | - break; | ||
| 336 | - default: | ||
| 337 | - sendMessage(JUST_OPEN_DOOR, "none user or administrator open the door"); | ||
| 338 | - break; | ||
| 339 | - } | ||
| 340 | - } else if (socketResponse.getCmd() == CLEAN_OVER) { | ||
| 341 | - Log.d("LightOperationUtils", "admin clean over close light"); | ||
| 342 | - LightOperationUtils.setLightValue(5); | ||
| 343 | - LightOperationUtils.close(); | ||
| 344 | - new SystemUtils().closeFtLed(context.getApplicationContext()); | ||
| 345 | - sendMessage(QrCodeShowActivity.KILL_SELF, "finish the QR CODE activity when clean over"); | ||
| 346 | - } | ||
| 347 | - } | ||
| 348 | - break; | ||
| 349 | - default: | ||
| 350 | - Log.d(TAG, "print msg:" + socketResponse.toString()); | ||
| 351 | - } | ||
| 352 | -// if (("sendMessage").equals(socketResponse.getCmd())) { | ||
| 353 | -// MessageEvent messageEvent = new MessageEvent(); | ||
| 354 | -// messageEvent.setEventId(JUST_OPEN_DOOR); | ||
| 355 | -// messageEvent.setMessage("click item"); | ||
| 356 | -// EventBus.getDefault().post(messageEvent); | ||
| 357 | -// } | ||
| 358 | - } catch (JsonSyntaxException e) { | ||
| 359 | - Log.d(TAG, message); | ||
| 360 | - e.printStackTrace(); | ||
| 361 | - } | ||
| 362 | - //收到服务器过来的消息,就通过Broadcast发送出去 | ||
| 363 | -// if (message.equals(END_SYMBOL)) {//处理心跳回复 | ||
| 364 | -// Intent intent = new Intent(HEART_BEAT_ACTION); | ||
| 365 | -// mLocalBroadcastManager.sendBroadcast(intent); | ||
| 366 | -// } else { | ||
| 367 | -// //其他消息回复 | ||
| 368 | -// Intent intent = new Intent(MESSAGE_ACTION); | ||
| 369 | -// intent.putExtra("message", message); | ||
| 370 | -// mLocalBroadcastManager.sendBroadcast(intent); | ||
| 371 | -// } | ||
| 372 | - } | ||
| 373 | - } | ||
| 374 | - } catch (IOException e) { | ||
| 375 | - e.printStackTrace(); | ||
| 376 | - } | ||
| 377 | - } | ||
| 378 | - } | ||
| 379 | - } | ||
| 380 | - | ||
| 381 | - private void sendMessage(int type, String msg) { | ||
| 382 | - MessageEvent messageEvent = new MessageEvent(); | ||
| 383 | - messageEvent.setEventId(type); | ||
| 384 | - messageEvent.setMessage(msg); | ||
| 385 | - EventBus.getDefault().post(messageEvent); | ||
| 386 | - } | ||
| 387 | - | ||
| 388 | - boolean sendRegister = false; | ||
| 389 | - | ||
| 390 | - | ||
| 391 | - // Thread to read content from Socket | ||
| 392 | - class HeatBeatThread extends Thread { | ||
| 393 | - private WeakReference<Socket> mWeakSocket; | ||
| 394 | - private boolean isStart = true; | ||
| 395 | - | ||
| 396 | - public HeatBeatThread(Socket socket) { | ||
| 397 | - mWeakSocket = new WeakReference<Socket>(socket); | ||
| 398 | - } | ||
| 399 | - | ||
| 400 | - public void release() { | ||
| 401 | - isStart = false; | ||
| 402 | - releaseLastSocket(mWeakSocket); | ||
| 403 | - } | ||
| 404 | - | ||
| 405 | - @Override | ||
| 406 | - public void run() { | ||
| 407 | - super.run(); | ||
| 408 | - Socket socket = mWeakSocket.get(); | ||
| 409 | - if (null != socket) { | ||
| 410 | - while (isStart) { | ||
| 411 | - if (System.currentTimeMillis() - sendTime >= HEART_BEAT_RATE) { | ||
| 412 | - Log.d(TAG, "heart beat:" + Thread.currentThread().getId()); | ||
| 413 | - boolean isSuccess = sendMsg(new Gson().toJson(new SocketSendMsg().contractHeartBeatMsg(testRoomSn)) + END_SYMBOL);//就发送一个HEART_BEAT_STRING过去 如果发送失败,就重新初始化一个socket | ||
| 414 | - if (!isSuccess) { | ||
| 415 | - Log.d(TAG, "heart beat error restart:" + Thread.currentThread().getId()); | ||
| 416 | -// mHandler.removeCallbacks(heartBeatRunnable); | ||
| 417 | - mReadThread.release(); | ||
| 418 | - mHeatBeatThread.release(); | ||
| 419 | - sendRegister = false; | ||
| 420 | - releaseLastSocket(mSocket); | ||
| 421 | - new InitSocketThread().start(); | ||
| 422 | - } | ||
| 423 | - } else { | ||
| 424 | - Log.d(TAG, "heart beat less than beat rate:" + Thread.currentThread().getId()); | ||
| 425 | - } | ||
| 426 | - try { | ||
| 427 | - Thread.sleep(HEART_BEAT_RATE); | ||
| 428 | - } catch (InterruptedException e) { | ||
| 429 | - e.printStackTrace(); | ||
| 430 | - } | ||
| 431 | - } | ||
| 432 | - } | ||
| 433 | - } | ||
| 434 | - } | ||
| 435 | - | ||
| 436 | - @Override | ||
| 437 | - public void onDestroy() { | ||
| 438 | - Log.d(TAG, "socket service destroy"); | ||
| 439 | - super.onDestroy(); | ||
| 440 | - } | ||
| 441 | -} |
| 1 | package com.qnbar.smc.service; | 1 | package com.qnbar.smc.service; |
| 2 | 2 | ||
| 3 | +import android.content.ComponentName; | ||
| 3 | import android.content.Context; | 4 | import android.content.Context; |
| 4 | import android.content.Intent; | 5 | import android.content.Intent; |
| 6 | +import android.content.ServiceConnection; | ||
| 7 | +import android.media.AudioManager; | ||
| 5 | import android.os.Handler; | 8 | import android.os.Handler; |
| 6 | import android.os.IBinder; | 9 | import android.os.IBinder; |
| 10 | +import android.os.RemoteException; | ||
| 7 | import android.text.TextUtils; | 11 | import android.text.TextUtils; |
| 8 | import android.util.Log; | 12 | import android.util.Log; |
| 9 | import android.widget.Toast; | 13 | import android.widget.Toast; |
| @@ -13,17 +17,30 @@ import com.gimi.common.cinema.utils.ActivityCollector; | @@ -13,17 +17,30 @@ import com.gimi.common.cinema.utils.ActivityCollector; | ||
| 13 | import com.gimi.common.cinema.utils.CToast; | 17 | import com.gimi.common.cinema.utils.CToast; |
| 14 | import com.gimi.common.cinema.utils.LogUtils; | 18 | import com.gimi.common.cinema.utils.LogUtils; |
| 15 | import com.gimi.common.cinema.utils.NetStatusUtils; | 19 | import com.gimi.common.cinema.utils.NetStatusUtils; |
| 20 | +import com.gimi.common.cinema.utils.ShellUtils; | ||
| 16 | import com.gimi.common.cinema.utils.SystemUtils; | 21 | import com.gimi.common.cinema.utils.SystemUtils; |
| 17 | import com.gimi.common.cinema.utils.Utils; | 22 | import com.gimi.common.cinema.utils.Utils; |
| 18 | import com.google.gson.Gson; | 23 | import com.google.gson.Gson; |
| 19 | import com.google.gson.JsonSyntaxException; | 24 | import com.google.gson.JsonSyntaxException; |
| 25 | +import com.qnbar.smc.model.Lights; | ||
| 26 | +import com.qnbar.smc.socketProtocol.MainRequest; | ||
| 27 | +import com.qnbar.smc.socketProtocol.MainResponse; | ||
| 28 | +import com.qnbar.smc.socketProtocol.fromServer.EquipmentControl; | ||
| 29 | +import com.qnbar.smc.socketProtocol.fromServer.OpenDoor; | ||
| 30 | +import com.qnbar.smc.socketProtocol.fromServer.ReportEquStatus; | ||
| 31 | +import com.qnbar.smc.socketProtocol.fromServer.VerifyCode; | ||
| 32 | +import com.qnbar.smc.socketProtocol.toServer.EquipmentStatus; | ||
| 33 | +import com.qnbar.smc.socketProtocol.toServer.SocketSendMsg; | ||
| 20 | import com.qnbar.smc.utils.LightOperationUtils; | 34 | import com.qnbar.smc.utils.LightOperationUtils; |
| 35 | +import com.telink.bluetooth.light.ConnectionStatus; | ||
| 36 | +import com.xgimi.gimicinema.ICinemaControl; | ||
| 21 | import com.xgimi.gimicinema.activity.AdsPreVideoPlayerActivity; | 37 | import com.xgimi.gimicinema.activity.AdsPreVideoPlayerActivity; |
| 22 | import com.xgimi.gimicinema.activity.MainActivity; | 38 | import com.xgimi.gimicinema.activity.MainActivity; |
| 23 | import com.xgimi.gimicinema.activity.QrCodeShowActivity; | 39 | import com.xgimi.gimicinema.activity.QrCodeShowActivity; |
| 24 | import com.xgimi.gimicinema.activity.SimpleAdsPlayer2; | 40 | import com.xgimi.gimicinema.activity.SimpleAdsPlayer2; |
| 25 | import com.xgimi.gimicinema.application.FangTangApplication; | 41 | import com.xgimi.gimicinema.application.FangTangApplication; |
| 26 | import com.xgimi.gimicinema.poll.PollingUtils; | 42 | import com.xgimi.gimicinema.poll.PollingUtils; |
| 43 | +import com.xgimi.gimicinema.service.CinemaControlService; | ||
| 27 | import com.xgimi.gimicinema.service.CountService; | 44 | import com.xgimi.gimicinema.service.CountService; |
| 28 | import com.xgimi.smartscreen.encrypt.AuthCode; | 45 | import com.xgimi.smartscreen.encrypt.AuthCode; |
| 29 | import org.greenrobot.eventbus.EventBus; | 46 | import org.greenrobot.eventbus.EventBus; |
| @@ -34,17 +51,18 @@ import java.io.InterruptedIOException; | @@ -34,17 +51,18 @@ import java.io.InterruptedIOException; | ||
| 34 | import java.io.OutputStream; | 51 | import java.io.OutputStream; |
| 35 | import java.net.Socket; | 52 | import java.net.Socket; |
| 36 | import java.util.Arrays; | 53 | import java.util.Arrays; |
| 54 | +import java.util.Timer; | ||
| 55 | +import java.util.TimerTask; | ||
| 37 | import java.util.concurrent.atomic.AtomicBoolean; | 56 | import java.util.concurrent.atomic.AtomicBoolean; |
| 38 | import java.util.concurrent.atomic.AtomicInteger; | 57 | import java.util.concurrent.atomic.AtomicInteger; |
| 39 | 58 | ||
| 40 | -import static com.qnbar.smc.service.SocketService.JUST_OPEN_DOOR; | ||
| 41 | -import static com.qnbar.smc.service.SocketService.USER_OPEN_DOOR; | ||
| 42 | -import static com.qnbar.smc.service.SocketService.USER_OPEN_DOOR_AND_GET_MOVIE; | ||
| 43 | - | ||
| 44 | public class SocketService1 extends BaseService { | 59 | public class SocketService1 extends BaseService { |
| 45 | private static final String TAG = "BackService1"; | 60 | private static final String TAG = "BackService1"; |
| 46 | private static final long HEART_BEAT_RATE = 2 * 1000; | 61 | private static final long HEART_BEAT_RATE = 2 * 1000; |
| 47 | private final long READ_THREAD_DEFAULT_SLEEP_MTIME = 100; | 62 | private final long READ_THREAD_DEFAULT_SLEEP_MTIME = 100; |
| 63 | + public static final int JUST_OPEN_DOOR = 1701; | ||
| 64 | + public static final int USER_OPEN_DOOR_AND_GET_MOVIE = 1703; | ||
| 65 | + public static final int USER_OPEN_DOOR = 1704; | ||
| 48 | 66 | ||
| 49 | // public static final int USER_OPEN_DOOR_AND_GET_MOVIE = 1703; | 67 | // public static final int USER_OPEN_DOOR_AND_GET_MOVIE = 1703; |
| 50 | /* | 68 | /* |
| @@ -75,7 +93,10 @@ public class SocketService1 extends BaseService { | @@ -75,7 +93,10 @@ public class SocketService1 extends BaseService { | ||
| 75 | private static final int ROOM_SN_CONNECTED = 10010;//room_sn 已连接,不能再连接 | 93 | private static final int ROOM_SN_CONNECTED = 10010;//room_sn 已连接,不能再连接 |
| 76 | private static final int OPEN_DOOR = 50001;//开门命令 | 94 | private static final int OPEN_DOOR = 50001;//开门命令 |
| 77 | private static final int CLEAN_OVER = 50002;// | 95 | private static final int CLEAN_OVER = 50002;// |
| 96 | + private static final int REPORT_EQU_STATUS = 50003;//返回设备状态信息 | ||
| 97 | + private static final int SET_EQU_STATUS = 50004;//返回设备状态信息 | ||
| 78 | 98 | ||
| 99 | + private static final int CMD_REPORT_EQU_STATUS = 20030;//上报设备状态信息 | ||
| 79 | private static final int ROOM_HAS_REGISTERED = 1001; | 100 | private static final int ROOM_HAS_REGISTERED = 1001; |
| 80 | private static final int ROOM_NOT_EXIST_M = 1002; | 101 | private static final int ROOM_NOT_EXIST_M = 1002; |
| 81 | private static final int HEAT_BEAT_RTN = 1003; | 102 | private static final int HEAT_BEAT_RTN = 1003; |
| @@ -112,6 +133,8 @@ public class SocketService1 extends BaseService { | @@ -112,6 +133,8 @@ public class SocketService1 extends BaseService { | ||
| 112 | AtomicBoolean sendRegister = new AtomicBoolean(false); | 133 | AtomicBoolean sendRegister = new AtomicBoolean(false); |
| 113 | AtomicInteger heartBeatErrorCount = new AtomicInteger(0); | 134 | AtomicInteger heartBeatErrorCount = new AtomicInteger(0); |
| 114 | 135 | ||
| 136 | + ICinemaControl iPlayer; | ||
| 137 | + | ||
| 115 | private Runnable heartBeatRunnable = new Runnable() { | 138 | private Runnable heartBeatRunnable = new Runnable() { |
| 116 | @Override | 139 | @Override |
| 117 | public void run() { | 140 | public void run() { |
| @@ -151,6 +174,8 @@ public class SocketService1 extends BaseService { | @@ -151,6 +174,8 @@ public class SocketService1 extends BaseService { | ||
| 151 | public void onCreate() { | 174 | public void onCreate() { |
| 152 | super.onCreate(); | 175 | super.onCreate(); |
| 153 | LogUtils.i(TAG, "onCreate"); | 176 | LogUtils.i(TAG, "onCreate"); |
| 177 | + bindService(new Intent(SocketService1.this, CinemaControlService.class), conn, Context.BIND_AUTO_CREATE); | ||
| 178 | + startService(new Intent(SocketService1.this, CinemaControlService.class)); | ||
| 154 | } | 179 | } |
| 155 | 180 | ||
| 156 | @Override | 181 | @Override |
| @@ -158,6 +183,7 @@ public class SocketService1 extends BaseService { | @@ -158,6 +183,7 @@ public class SocketService1 extends BaseService { | ||
| 158 | super.onStartCommand(intent, flags, startId); | 183 | super.onStartCommand(intent, flags, startId); |
| 159 | LogUtils.i(TAG, "onStartCommand"); | 184 | LogUtils.i(TAG, "onStartCommand"); |
| 160 | int ftTest = Utils.getInt(this, "ft-test", 0); | 185 | int ftTest = Utils.getInt(this, "ft-test", 0); |
| 186 | + Log.d("Host", ""+ftTest); | ||
| 161 | switch (ftTest) { | 187 | switch (ftTest) { |
| 162 | case 0: | 188 | case 0: |
| 163 | serverHost = SERVER_HOST_ONLINE; | 189 | serverHost = SERVER_HOST_ONLINE; |
| @@ -359,10 +385,9 @@ public class SocketService1 extends BaseService { | @@ -359,10 +385,9 @@ public class SocketService1 extends BaseService { | ||
| 359 | sleepTime = READ_THREAD_DEFAULT_SLEEP_MTIME; | 385 | sleepTime = READ_THREAD_DEFAULT_SLEEP_MTIME; |
| 360 | 386 | ||
| 361 | LogUtils.d(TAG, "recv msg:" + message); | 387 | LogUtils.d(TAG, "recv msg:" + message); |
| 362 | - SocketResponse socketResponse; | 388 | + MainResponse socketResponse; |
| 363 | try { | 389 | try { |
| 364 | - socketResponse = gson.fromJson(message.toString(), | ||
| 365 | - SocketResponse.class); | 390 | + socketResponse = gson.fromJson(message.toString(), MainResponse.class); |
| 366 | if (socketResponse.getCode() != HEART_BEAT_SUCCESS) { | 391 | if (socketResponse.getCode() != HEART_BEAT_SUCCESS) { |
| 367 | LogUtils.i(TAG, "recv msg:" + message); | 392 | LogUtils.i(TAG, "recv msg:" + message); |
| 368 | } | 393 | } |
| @@ -372,6 +397,7 @@ public class SocketService1 extends BaseService { | @@ -372,6 +397,7 @@ public class SocketService1 extends BaseService { | ||
| 372 | clearConnect(); | 397 | clearConnect(); |
| 373 | break; | 398 | break; |
| 374 | } | 399 | } |
| 400 | + | ||
| 375 | switch (socketResponse.getCode()) { | 401 | switch (socketResponse.getCode()) { |
| 376 | case SUCCESS_MESSAGE: | 402 | case SUCCESS_MESSAGE: |
| 377 | heartBeatErrorCount.set(0); | 403 | heartBeatErrorCount.set(0); |
| @@ -404,72 +430,20 @@ public class SocketService1 extends BaseService { | @@ -404,72 +430,20 @@ public class SocketService1 extends BaseService { | ||
| 404 | break; | 430 | break; |
| 405 | case RETURN_VERIFY_CODE: | 431 | case RETURN_VERIFY_CODE: |
| 406 | LogUtils.i(TAG, "RETURN_VERIFY_CODE"); | 432 | LogUtils.i(TAG, "RETURN_VERIFY_CODE"); |
| 407 | - if (!TextUtils.isEmpty(socketResponse.getData().getVerify())) { | ||
| 408 | - String verifyMsg = AuthCode.getDecodeStr(socketResponse.getData().getVerify()); | ||
| 409 | - SocketSendMsg ssm = new SocketSendMsg().contractVerifyMsg(testRoomSn, verifyMsg); | ||
| 410 | - String msg = gson.toJson(ssm) + END_SYMBOL; | ||
| 411 | - sendMsg(msg); | 433 | + if (!TextUtils.isEmpty(socketResponse.getData())) { |
| 434 | + VerifyCode verifyResponse = gson.fromJson(socketResponse.getData(), VerifyCode.class); | ||
| 435 | + if(!TextUtils.isEmpty(verifyResponse.getVerify())){ | ||
| 436 | + String verifyMsg = AuthCode.getDecodeStr(verifyResponse.getVerify()); | ||
| 437 | + SocketSendMsg ssm = new SocketSendMsg().contractVerifyMsg(testRoomSn, verifyMsg); | ||
| 438 | + String msg = gson.toJson(ssm) + END_SYMBOL; | ||
| 439 | + sendMsg(msg); | ||
| 440 | + } | ||
| 412 | } | 441 | } |
| 413 | break; | 442 | break; |
| 414 | case CONTAIN_MESSAGE: | 443 | case CONTAIN_MESSAGE: |
| 415 | heartBeatErrorCount.set(0); | 444 | heartBeatErrorCount.set(0); |
| 416 | LogUtils.i(TAG, "CONTAIN_MESSAGE"); | 445 | LogUtils.i(TAG, "CONTAIN_MESSAGE"); |
| 417 | - if (socketResponse.getData() != null) { | ||
| 418 | - if (socketResponse.getCmd() == OPEN_DOOR) { | ||
| 419 | - switch (socketResponse.getData().getUser()) { | ||
| 420 | - //10用户,20管理员,默认值为0 | ||
| 421 | - case 10: | ||
| 422 | - new SystemUtils().openFtLed(context.getApplicationContext()); | ||
| 423 | - if (TextUtils.isEmpty(((FangTangApplication) getApplication()).getCurrentPlayUrl())) { | ||
| 424 | - LightOperationUtils.open(); | ||
| 425 | - LightOperationUtils.setLightValue(Utils.getInt(context, "brightness", 50)); | ||
| 426 | - } | ||
| 427 | - sendMessage(QrCodeShowActivity.KILL_SELF, "finish the QR CODE activity when new user come in"); | ||
| 428 | - if (socketResponse.getData().getFirst() == 1) { | ||
| 429 | - sendMessage(USER_OPEN_DOOR_AND_GET_MOVIE, "user first open the door"); | ||
| 430 | - } else { | ||
| 431 | - sendMessage(USER_OPEN_DOOR, "user open the door"); | ||
| 432 | - } | ||
| 433 | - break; | ||
| 434 | - case 20: | ||
| 435 | - LogUtils.i(TAG, "admin open the door,del the log"); | ||
| 436 | - LogUtils.delLog(); | ||
| 437 | - if (TextUtils.isEmpty(((FangTangApplication) getApplication()).getCurrentPlayUrl())) { | ||
| 438 | - LogUtils.i("LightOperationUtils", "admin open light"); | ||
| 439 | - LightOperationUtils.open(); | ||
| 440 | - LightOperationUtils.setLightValue(Utils.getInt(context, "brightness", 50)); | ||
| 441 | - } | ||
| 442 | - sendMessage(JUST_OPEN_DOOR, "administrator open the door"); | ||
| 443 | - break; | ||
| 444 | - case 0: | ||
| 445 | - sendMessage(JUST_OPEN_DOOR, "get zero none user or administrator open the door"); | ||
| 446 | - break; | ||
| 447 | - default: | ||
| 448 | - sendMessage(JUST_OPEN_DOOR, "none user or administrator open the door"); | ||
| 449 | - break; | ||
| 450 | - } | ||
| 451 | - } else if (socketResponse.getCmd() == CLEAN_OVER) { | ||
| 452 | - LogUtils.i("LightOperationUtils", "admin clean over close light"); | ||
| 453 | - LightOperationUtils.setLightValue(5); | ||
| 454 | - LightOperationUtils.close(); | ||
| 455 | - new SystemUtils().closeFtLed(context.getApplicationContext()); | ||
| 456 | - sendMessage(QrCodeShowActivity.KILL_SELF, "finish the QR CODE activity when clean over"); | ||
| 457 | - if (ActivityCollector.isActivityExist(SimpleAdsPlayer2.class)) { | ||
| 458 | - ActivityCollector.getActivity(SimpleAdsPlayer2.class).finish(); | ||
| 459 | - } | ||
| 460 | - if (ActivityCollector.isActivityExist(AdsPreVideoPlayerActivity.class)) { | ||
| 461 | - ActivityCollector.getActivity(AdsPreVideoPlayerActivity.class).finish(); | ||
| 462 | - } | ||
| 463 | - if (ActivityCollector.isActivityExist(QrCodeShowActivity.class)) { | ||
| 464 | - ActivityCollector.getActivity(QrCodeShowActivity.class).finish(); | ||
| 465 | - } | ||
| 466 | - try { | ||
| 467 | - PollingUtils.stopPollingService(context, CountService.class, CountService.STATUS_ACTION); | ||
| 468 | - } catch (Exception e) { | ||
| 469 | - e.printStackTrace(); | ||
| 470 | - } | ||
| 471 | - } | ||
| 472 | - } | 446 | + serverCommandDeal(socketResponse); |
| 473 | break; | 447 | break; |
| 474 | default: | 448 | default: |
| 475 | clearConnect(); | 449 | clearConnect(); |
| @@ -497,4 +471,250 @@ public class SocketService1 extends BaseService { | @@ -497,4 +471,250 @@ public class SocketService1 extends BaseService { | ||
| 497 | LogUtils.i(TAG, "socket service destroy"); | 471 | LogUtils.i(TAG, "socket service destroy"); |
| 498 | super.onDestroy(); | 472 | super.onDestroy(); |
| 499 | } | 473 | } |
| 474 | + | ||
| 475 | + /** | ||
| 476 | + * 处理服务器发送的命令 | ||
| 477 | + * @param socketResponse | ||
| 478 | + */ | ||
| 479 | + private void serverCommandDeal(MainResponse socketResponse) { | ||
| 480 | + switch (socketResponse.getCmd()) | ||
| 481 | + { | ||
| 482 | + case OPEN_DOOR://开门 | ||
| 483 | + if (socketResponse.getData() != null) { | ||
| 484 | + OpenDoor openDoorResponse = gson.fromJson(socketResponse.getData(), OpenDoor.class); | ||
| 485 | + openDoor(openDoorResponse); | ||
| 486 | + } | ||
| 487 | + break; | ||
| 488 | + case CLEAN_OVER://清洁完成处理 | ||
| 489 | + LogUtils.i("LightOperationUtils", "admin clean over close light"); | ||
| 490 | + LightOperationUtils.setLightValue(5); | ||
| 491 | + LightOperationUtils.close(); | ||
| 492 | + new SystemUtils().closeFtLed(context.getApplicationContext()); | ||
| 493 | + sendMessage(QrCodeShowActivity.KILL_SELF, "finish the QR CODE activity when clean over"); | ||
| 494 | + if (ActivityCollector.isActivityExist(SimpleAdsPlayer2.class)) { | ||
| 495 | + ActivityCollector.getActivity(SimpleAdsPlayer2.class).finish(); | ||
| 496 | + } | ||
| 497 | + if (ActivityCollector.isActivityExist(AdsPreVideoPlayerActivity.class)) { | ||
| 498 | + ActivityCollector.getActivity(AdsPreVideoPlayerActivity.class).finish(); | ||
| 499 | + } | ||
| 500 | + if (ActivityCollector.isActivityExist(QrCodeShowActivity.class)) { | ||
| 501 | + ActivityCollector.getActivity(QrCodeShowActivity.class).finish(); | ||
| 502 | + } | ||
| 503 | + try { | ||
| 504 | + PollingUtils.stopPollingService(context, CountService.class, CountService.STATUS_ACTION); | ||
| 505 | + } catch (Exception e) { | ||
| 506 | + e.printStackTrace(); | ||
| 507 | + } | ||
| 508 | + break; | ||
| 509 | + | ||
| 510 | + case REPORT_EQU_STATUS://获取声音,灯光,播放暂停状态 | ||
| 511 | + long time1 = System.currentTimeMillis(); | ||
| 512 | + Log.d("ReportInfo","收到上报命令"); | ||
| 513 | + //获取serverId | ||
| 514 | + ReportEquStatus rps = gson.fromJson(socketResponse.getData(), ReportEquStatus.class); | ||
| 515 | +// String serverId = rps.getServerId(); | ||
| 516 | + reportEquStatus(rps.getServerId(),0); | ||
| 517 | + break; | ||
| 518 | + | ||
| 519 | + case SET_EQU_STATUS://设置声音,灯光,播放暂停 | ||
| 520 | + Log.d("ReportInfo","收到控制命令:"+socketResponse.getData()); | ||
| 521 | + EquipmentControl equc = gson.fromJson(socketResponse.getData(), EquipmentControl.class); | ||
| 522 | + setEquipmentStatus(equc); | ||
| 523 | + break; | ||
| 524 | + } | ||
| 525 | + } | ||
| 526 | + | ||
| 527 | + /*--命令处理-start-----------------------------------*/ | ||
| 528 | + | ||
| 529 | + private void openDoor(OpenDoor openDoorResponse) { | ||
| 530 | + switch (openDoorResponse.getUser()) { | ||
| 531 | + //10用户,20管理员,默认值为0 | ||
| 532 | + case 10: | ||
| 533 | + new SystemUtils().openFtLed(context.getApplicationContext()); | ||
| 534 | + if (TextUtils.isEmpty(((FangTangApplication) getApplication()).getCurrentPlayUrl())) { | ||
| 535 | + LightOperationUtils.open(); | ||
| 536 | + LightOperationUtils.setLightValue(Utils.getInt(context, "brightness", 50)); | ||
| 537 | + } | ||
| 538 | + sendMessage(QrCodeShowActivity.KILL_SELF, "finish the QR CODE activity when new user come in"); | ||
| 539 | + if (openDoorResponse.getFirst() == 1) { | ||
| 540 | + sendMessage(USER_OPEN_DOOR_AND_GET_MOVIE, "user first open the door"); | ||
| 541 | + } else { | ||
| 542 | + sendMessage(USER_OPEN_DOOR, "user open the door"); | ||
| 543 | + } | ||
| 544 | + break; | ||
| 545 | + case 20: | ||
| 546 | + LogUtils.i(TAG, "admin open the door,del the log"); | ||
| 547 | + LogUtils.delLog(); | ||
| 548 | + if (TextUtils.isEmpty(((FangTangApplication) getApplication()).getCurrentPlayUrl())) { | ||
| 549 | + LogUtils.i("LightOperationUtils", "admin open light"); | ||
| 550 | + LightOperationUtils.open(); | ||
| 551 | + LightOperationUtils.setLightValue(Utils.getInt(context, "brightness", 50)); | ||
| 552 | + } | ||
| 553 | + sendMessage(JUST_OPEN_DOOR, "administrator open the door"); | ||
| 554 | + break; | ||
| 555 | + case 0: | ||
| 556 | + sendMessage(JUST_OPEN_DOOR, "get zero none user or administrator open the door"); | ||
| 557 | + break; | ||
| 558 | + default: | ||
| 559 | + sendMessage(JUST_OPEN_DOOR, "none user or administrator open the door"); | ||
| 560 | + break; | ||
| 561 | + } | ||
| 562 | + } | ||
| 563 | + | ||
| 564 | + private void reportEquStatus(String serverId,int lightSet) { | ||
| 565 | + //填充返回数据 | ||
| 566 | + int volume = getAudioVolume()/6 + 1; | ||
| 567 | + int lightStatus = 2; | ||
| 568 | + int playStatus = 0; | ||
| 569 | + | ||
| 570 | + try { | ||
| 571 | + playStatus = iPlayer.getCurrentStatus(); | ||
| 572 | + Log.d("ReportInfo","playStatus:"+playStatus); | ||
| 573 | + } catch (RemoteException e) { | ||
| 574 | + e.printStackTrace(); | ||
| 575 | + } | ||
| 576 | + | ||
| 577 | + if (lightSet == 1 || lightSet == 2) { | ||
| 578 | + lightStatus = lightSet; | ||
| 579 | + } else { | ||
| 580 | + ConnectionStatus stu = Lights.getInstance().getByMeshAddress(((FangTangApplication) getApplication()).getConnectDevice().meshAddress).status; | ||
| 581 | + if( Lights.getInstance().getByMeshAddress( | ||
| 582 | + ((FangTangApplication) getApplication()).getConnectDevice().meshAddress).status == ConnectionStatus.ON ) { | ||
| 583 | + Log.d("ReportInfo","lightStatus==1"); | ||
| 584 | + lightStatus = 1; | ||
| 585 | + } else { | ||
| 586 | + Log.d("ReportInfo", "lightStatus:"+stu); | ||
| 587 | + } | ||
| 588 | + } | ||
| 589 | + | ||
| 590 | + EquipmentStatus equStatus = new EquipmentStatus(); | ||
| 591 | + equStatus.setLightStatus(lightStatus); | ||
| 592 | + equStatus.setPlayStatus(playStatus); | ||
| 593 | + equStatus.setVolume(volume); | ||
| 594 | + equStatus.setServerId(serverId); | ||
| 595 | + equStatus.setRoom_sn(testRoomSn); | ||
| 596 | + | ||
| 597 | + MainRequest rep = new MainRequest(); | ||
| 598 | + rep.setCmd(CMD_REPORT_EQU_STATUS); | ||
| 599 | + rep.setData(equStatus); | ||
| 600 | + String msg = gson.toJson(rep) + END_SYMBOL; | ||
| 601 | + sendMsg(msg); | ||
| 602 | + Log.d("ReportInfo",msg); | ||
| 603 | + } | ||
| 604 | + | ||
| 605 | + private void setLight(int op) { | ||
| 606 | + if (op == 1){//打开灯光 | ||
| 607 | + Log.d("setEqu","打开灯光"); | ||
| 608 | + LightOperationUtils.open(); | ||
| 609 | + LightOperationUtils.setLightValue(5); | ||
| 610 | + | ||
| 611 | + //延时增亮 | ||
| 612 | + Timer timer=new Timer();//实例化Timer类 | ||
| 613 | + timer.schedule(new TimerTask(){ | ||
| 614 | + public void run(){ | ||
| 615 | + LightOperationUtils.setLightValue(Utils.getInt(context, "brightness", 50)); | ||
| 616 | + this.cancel();}},2000);//毫秒 | ||
| 617 | + } else if(op == 2) {//关闭灯光 | ||
| 618 | + Log.d("setEqu","关闭灯光"); | ||
| 619 | + LightOperationUtils.setLightValue(5); | ||
| 620 | + | ||
| 621 | + //延时关闭 | ||
| 622 | + Timer timer=new Timer();//实例化Timer类 | ||
| 623 | + timer.schedule(new TimerTask(){ | ||
| 624 | + public void run(){ | ||
| 625 | + LightOperationUtils.close(); | ||
| 626 | + this.cancel();}},2000);//毫秒 | ||
| 627 | + } | ||
| 628 | + } | ||
| 629 | + | ||
| 630 | + private void playCtl(int op) { | ||
| 631 | + int status = -1; | ||
| 632 | + try { | ||
| 633 | + status = iPlayer.getCurrentStatus(); | ||
| 634 | + } catch (RemoteException e) { | ||
| 635 | + e.printStackTrace(); | ||
| 636 | + } | ||
| 637 | + | ||
| 638 | + if (op == 1 && status == 2) | ||
| 639 | + { | ||
| 640 | + Log.d("setEqu","开始播放"); | ||
| 641 | + ShellUtils.execCommand("input keyevent 23", false); | ||
| 642 | + } | ||
| 643 | + else if (op == 2 && status == 1) | ||
| 644 | + { | ||
| 645 | + Log.d("setEqu","暂停播放"); | ||
| 646 | + ShellUtils.execCommand("input keyevent 23", false); | ||
| 647 | + } | ||
| 648 | + } | ||
| 649 | + | ||
| 650 | + private void setEquipmentStatus(EquipmentControl equc) { | ||
| 651 | + setLight(equc.getLightCtl()); | ||
| 652 | + | ||
| 653 | + playCtl(equc.getPlayCtl()); | ||
| 654 | + | ||
| 655 | + setAudioVolume(equc.getAudioCtl()); | ||
| 656 | + | ||
| 657 | + if (equc.getLightCtl() != 0){ | ||
| 658 | + try { | ||
| 659 | + Thread.sleep(500); | ||
| 660 | + } catch (InterruptedException e) { | ||
| 661 | + e.printStackTrace(); | ||
| 662 | + } | ||
| 663 | + } | ||
| 664 | + | ||
| 665 | + reportEquStatus(equc.getServerId(),equc.getLightCtl()); | ||
| 666 | + } | ||
| 667 | + | ||
| 668 | +/*--命令处理-end-----------------------------------*/ | ||
| 669 | + | ||
| 670 | + private int getAudioVolume() { | ||
| 671 | + AudioManager mAudioManager; | ||
| 672 | + mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); | ||
| 673 | + return mAudioManager.getStreamVolume( AudioManager.STREAM_MUSIC ); | ||
| 674 | + } | ||
| 675 | + | ||
| 676 | + private int setAudioVolume(int volume) { | ||
| 677 | + AudioManager mAudioManager; | ||
| 678 | + mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); | ||
| 679 | + int now = getAudioVolume()/6; | ||
| 680 | + | ||
| 681 | + if (volume == 0) { | ||
| 682 | + return now; | ||
| 683 | + } else { | ||
| 684 | + volume--; | ||
| 685 | + } | ||
| 686 | + | ||
| 687 | + if (volume > now) {//加音量 | ||
| 688 | + Log.d("setEqu","加音量"+now+":"+volume); | ||
| 689 | + while(now < volume) { | ||
| 690 | + mAudioManager.adjustStreamVolume( | ||
| 691 | + AudioManager.STREAM_MUSIC, | ||
| 692 | + AudioManager.ADJUST_RAISE, | ||
| 693 | + AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI); | ||
| 694 | + now ++; | ||
| 695 | + } | ||
| 696 | + } else if(volume < now) {//减音量 | ||
| 697 | + Log.d("setEqu","减音量"+now+":"+volume); | ||
| 698 | + while(now > volume) { | ||
| 699 | + mAudioManager.adjustStreamVolume( | ||
| 700 | + AudioManager.STREAM_MUSIC, | ||
| 701 | + AudioManager.ADJUST_LOWER, | ||
| 702 | + AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI); | ||
| 703 | + now --; | ||
| 704 | + } | ||
| 705 | + } | ||
| 706 | + | ||
| 707 | + return now; | ||
| 708 | + } | ||
| 709 | + | ||
| 710 | + private ServiceConnection conn = new ServiceConnection() { | ||
| 711 | + public void onServiceConnected(ComponentName className, IBinder service) { | ||
| 712 | + Log.d("yao", "ServiceConnection -> onServiceConnected"); | ||
| 713 | + iPlayer = ICinemaControl.Stub.asInterface(service); | ||
| 714 | + } | ||
| 715 | + | ||
| 716 | + public void onServiceDisconnected(ComponentName className) { | ||
| 717 | + }; | ||
| 718 | + }; | ||
| 719 | + | ||
| 500 | } | 720 | } |
| 1 | +package com.qnbar.smc.socketProtocol; | ||
| 2 | + | ||
| 3 | +/** | ||
| 4 | + * Created by jinyan.yi on 2017/5/23. | ||
| 5 | + */ | ||
| 6 | + | ||
| 7 | +public class MainRequest { | ||
| 8 | + private int cmd; | ||
| 9 | + private DataInfo data; | ||
| 10 | + | ||
| 11 | + public int getCmd() { | ||
| 12 | + return cmd; | ||
| 13 | + } | ||
| 14 | + | ||
| 15 | + public void setCmd(int cmd) { | ||
| 16 | + this.cmd = cmd; | ||
| 17 | + } | ||
| 18 | + | ||
| 19 | + public DataInfo getData() { | ||
| 20 | + return data; | ||
| 21 | + } | ||
| 22 | + | ||
| 23 | + public void setData(DataInfo data) { | ||
| 24 | + this.data = data; | ||
| 25 | + } | ||
| 26 | + | ||
| 27 | + @Override | ||
| 28 | + public String toString() { | ||
| 29 | + return "MainRequest{" + | ||
| 30 | + "cmd=" + cmd + | ||
| 31 | + ", data=" + data + | ||
| 32 | + '}'; | ||
| 33 | + } | ||
| 34 | +} |
gimiCinema/src/main/java/com/qnbar/smc/service/SocketResponse.java
→
gimiCinema/src/main/java/com/qnbar/smc/socketProtocol/MainResponse.java
100755 → 100644
| 1 | -package com.qnbar.smc.service; | 1 | +package com.qnbar.smc.socketProtocol; |
| 2 | 2 | ||
| 3 | /** | 3 | /** |
| 4 | - * Created by wugian on 2017/3/11. | 4 | + * Created by jinyan.yi on 2017/5/23. |
| 5 | */ | 5 | */ |
| 6 | 6 | ||
| 7 | -public class SocketResponse { | ||
| 8 | - /** | ||
| 9 | - * code : 10007 | ||
| 10 | - * msg : unknown command! | ||
| 11 | - * data : {"verify":"","user":0,"first":0} | ||
| 12 | - * cmd : 10000 | ||
| 13 | - */ | ||
| 14 | - | 7 | +public class MainResponse { |
| 15 | private int code; | 8 | private int code; |
| 16 | private String msg; | 9 | private String msg; |
| 17 | - private DataEntity data; | 10 | + private String data; |
| 18 | private int cmd; | 11 | private int cmd; |
| 19 | 12 | ||
| 20 | public int getCode() { | 13 | public int getCode() { |
| @@ -33,11 +26,11 @@ public class SocketResponse { | @@ -33,11 +26,11 @@ public class SocketResponse { | ||
| 33 | this.msg = msg; | 26 | this.msg = msg; |
| 34 | } | 27 | } |
| 35 | 28 | ||
| 36 | - public DataEntity getData() { | 29 | + public String getData() { |
| 37 | return data; | 30 | return data; |
| 38 | } | 31 | } |
| 39 | 32 | ||
| 40 | - public void setData(DataEntity data) { | 33 | + public void setData(String data) { |
| 41 | this.data = data; | 34 | this.data = data; |
| 42 | } | 35 | } |
| 43 | 36 | ||
| @@ -49,57 +42,12 @@ public class SocketResponse { | @@ -49,57 +42,12 @@ public class SocketResponse { | ||
| 49 | this.cmd = cmd; | 42 | this.cmd = cmd; |
| 50 | } | 43 | } |
| 51 | 44 | ||
| 52 | - public static class DataEntity { | ||
| 53 | - /** | ||
| 54 | - * verify : | ||
| 55 | - * user : 0 | ||
| 56 | - * first : 0 | ||
| 57 | - */ | ||
| 58 | - | ||
| 59 | - private String verify; | ||
| 60 | - private int user; | ||
| 61 | - private int first; | ||
| 62 | - | ||
| 63 | - public String getVerify() { | ||
| 64 | - return verify; | ||
| 65 | - } | ||
| 66 | - | ||
| 67 | - public void setVerify(String verify) { | ||
| 68 | - this.verify = verify; | ||
| 69 | - } | ||
| 70 | - | ||
| 71 | - public int getUser() { | ||
| 72 | - return user; | ||
| 73 | - } | ||
| 74 | - | ||
| 75 | - public void setUser(int user) { | ||
| 76 | - this.user = user; | ||
| 77 | - } | ||
| 78 | - | ||
| 79 | - public int getFirst() { | ||
| 80 | - return first; | ||
| 81 | - } | ||
| 82 | - | ||
| 83 | - public void setFirst(int first) { | ||
| 84 | - this.first = first; | ||
| 85 | - } | ||
| 86 | - | ||
| 87 | - @Override | ||
| 88 | - public String toString() { | ||
| 89 | - return "DataEntity{" + | ||
| 90 | - "verify='" + verify + '\'' + | ||
| 91 | - ", user=" + user + | ||
| 92 | - ", first=" + first + | ||
| 93 | - '}'; | ||
| 94 | - } | ||
| 95 | - } | ||
| 96 | - | ||
| 97 | @Override | 45 | @Override |
| 98 | public String toString() { | 46 | public String toString() { |
| 99 | - return "SocketResponse{" + | 47 | + return "MainResponse{" + |
| 100 | "code=" + code + | 48 | "code=" + code + |
| 101 | ", msg='" + msg + '\'' + | 49 | ", msg='" + msg + '\'' + |
| 102 | - ", data=" + data + | 50 | + ", data='" + data + '\'' + |
| 103 | ", cmd=" + cmd + | 51 | ", cmd=" + cmd + |
| 104 | '}'; | 52 | '}'; |
| 105 | } | 53 | } |
| 1 | +package com.qnbar.smc.socketProtocol.fromServer; | ||
| 2 | + | ||
| 3 | +/** | ||
| 4 | + * Created by jinyan.yi on 2017/5/23. | ||
| 5 | + */ | ||
| 6 | + | ||
| 7 | +public class EquipmentControl { | ||
| 8 | + private int audioCtl; | ||
| 9 | + private int playCtl; | ||
| 10 | + private int lightCtl; | ||
| 11 | + private String serverId; | ||
| 12 | + | ||
| 13 | + public int getAudioCtl() { | ||
| 14 | + return audioCtl; | ||
| 15 | + } | ||
| 16 | + | ||
| 17 | + public void setAudioCtl(int audioCtl) { | ||
| 18 | + this.audioCtl = audioCtl; | ||
| 19 | + } | ||
| 20 | + | ||
| 21 | + public int getPlayCtl() { | ||
| 22 | + return playCtl; | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | + public void setPlayCtl(int playCtl) { | ||
| 26 | + this.playCtl = playCtl; | ||
| 27 | + } | ||
| 28 | + | ||
| 29 | + public int getLightCtl() { | ||
| 30 | + return lightCtl; | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + public void setLightCtl(int lightCtl) { | ||
| 34 | + this.lightCtl = lightCtl; | ||
| 35 | + } | ||
| 36 | + | ||
| 37 | + public String getServerId() { | ||
| 38 | + return serverId; | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + public void setServerId(String serverId) { | ||
| 42 | + this.serverId = serverId; | ||
| 43 | + } | ||
| 44 | + | ||
| 45 | + @Override | ||
| 46 | + public String toString() { | ||
| 47 | + return "EquipmentControl{" + | ||
| 48 | + "audioCtl=" + audioCtl + | ||
| 49 | + ", playCtl=" + playCtl + | ||
| 50 | + ", lightCtl=" + lightCtl + | ||
| 51 | + ", serverId='" + serverId + '\'' + | ||
| 52 | + '}'; | ||
| 53 | + } | ||
| 54 | +} |
| 1 | +package com.qnbar.smc.socketProtocol.fromServer; | ||
| 2 | + | ||
| 3 | +/** | ||
| 4 | + * Created by jinyan.yi on 2017/5/23. | ||
| 5 | + */ | ||
| 6 | + | ||
| 7 | +public class OpenDoor { | ||
| 8 | + private String verify; | ||
| 9 | + private int user; | ||
| 10 | + private int first; | ||
| 11 | + | ||
| 12 | + public String getVerify() { | ||
| 13 | + return verify; | ||
| 14 | + } | ||
| 15 | + | ||
| 16 | + public void setVerify(String verify) { | ||
| 17 | + this.verify = verify; | ||
| 18 | + } | ||
| 19 | + | ||
| 20 | + public int getUser() { | ||
| 21 | + return user; | ||
| 22 | + } | ||
| 23 | + | ||
| 24 | + public void setUser(int user) { | ||
| 25 | + this.user = user; | ||
| 26 | + } | ||
| 27 | + | ||
| 28 | + public int getFirst() { | ||
| 29 | + return first; | ||
| 30 | + } | ||
| 31 | + | ||
| 32 | + public void setFirst(int first) { | ||
| 33 | + this.first = first; | ||
| 34 | + } | ||
| 35 | + | ||
| 36 | + @Override | ||
| 37 | + public String toString() { | ||
| 38 | + return "OpenDoor{" + | ||
| 39 | + "verify='" + verify + '\'' + | ||
| 40 | + ", user=" + user + | ||
| 41 | + ", first=" + first + | ||
| 42 | + '}'; | ||
| 43 | + } | ||
| 44 | +} |
| 1 | +package com.qnbar.smc.socketProtocol.fromServer; | ||
| 2 | + | ||
| 3 | +/** | ||
| 4 | + * Created by jinyan.yi on 2017/5/23. | ||
| 5 | + */ | ||
| 6 | + | ||
| 7 | +public class ReportEquStatus { | ||
| 8 | + private String serverId; | ||
| 9 | + | ||
| 10 | + public String getServerId() { | ||
| 11 | + return serverId; | ||
| 12 | + } | ||
| 13 | + | ||
| 14 | + public void setServerId(String serverId) { | ||
| 15 | + this.serverId = serverId; | ||
| 16 | + } | ||
| 17 | +} |
| 1 | +package com.qnbar.smc.socketProtocol.fromServer; | ||
| 2 | + | ||
| 3 | +/** | ||
| 4 | + * Created by jinyan.yi on 2017/6/2. | ||
| 5 | + */ | ||
| 6 | + | ||
| 7 | +public class VerifyCode { | ||
| 8 | + private String verify; | ||
| 9 | + | ||
| 10 | + public String getVerify() { | ||
| 11 | + return verify; | ||
| 12 | + } | ||
| 13 | + | ||
| 14 | + public void setVerify(String verify) { | ||
| 15 | + this.verify = verify; | ||
| 16 | + } | ||
| 17 | + | ||
| 18 | + @Override | ||
| 19 | + public String toString() { | ||
| 20 | + return "VerifyCode{" + | ||
| 21 | + "verify='" + verify + '\'' + | ||
| 22 | + '}'; | ||
| 23 | + } | ||
| 24 | +} |
| 1 | +package com.qnbar.smc.socketProtocol.toServer; | ||
| 2 | + | ||
| 3 | +import com.qnbar.smc.socketProtocol.DataInfo; | ||
| 4 | + | ||
| 5 | +/** | ||
| 6 | + * Created by jinyan.yi on 2017/5/23. | ||
| 7 | + */ | ||
| 8 | + | ||
| 9 | +public class EquipmentStatus extends DataInfo { | ||
| 10 | + private int volume; | ||
| 11 | + private int lightStatus; | ||
| 12 | + private int playStatus; | ||
| 13 | + private String serverId; | ||
| 14 | + private String room_sn; | ||
| 15 | + | ||
| 16 | + public int getVolume() { | ||
| 17 | + return volume; | ||
| 18 | + } | ||
| 19 | + | ||
| 20 | + public void setVolume(int volume) { | ||
| 21 | + this.volume = volume; | ||
| 22 | + } | ||
| 23 | + | ||
| 24 | + public int getLightStatus() { | ||
| 25 | + return lightStatus; | ||
| 26 | + } | ||
| 27 | + | ||
| 28 | + public void setLightStatus(int lightStatus) { | ||
| 29 | + this.lightStatus = lightStatus; | ||
| 30 | + } | ||
| 31 | + | ||
| 32 | + public int getPlayStatus() { | ||
| 33 | + return playStatus; | ||
| 34 | + } | ||
| 35 | + | ||
| 36 | + public void setPlayStatus(int playStatus) { | ||
| 37 | + this.playStatus = playStatus; | ||
| 38 | + } | ||
| 39 | + | ||
| 40 | + public String getServerId() { | ||
| 41 | + return serverId; | ||
| 42 | + } | ||
| 43 | + | ||
| 44 | + public void setServerId(String serverId) { | ||
| 45 | + this.serverId = serverId; | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + public String getRoom_sn() { | ||
| 49 | + return room_sn; | ||
| 50 | + } | ||
| 51 | + | ||
| 52 | + public void setRoom_sn(String room_sn) { | ||
| 53 | + this.room_sn = room_sn; | ||
| 54 | + } | ||
| 55 | + | ||
| 56 | + @Override | ||
| 57 | + public String toString() { | ||
| 58 | + return "EquipmentStatus{" + | ||
| 59 | + "volume=" + volume + | ||
| 60 | + ", lightStatus=" + lightStatus + | ||
| 61 | + ", playStatus=" + playStatus + | ||
| 62 | + ", serverId='" + serverId + '\'' + | ||
| 63 | + ", room_sn='" + room_sn + '\'' + | ||
| 64 | + '}'; | ||
| 65 | + } | ||
| 66 | +} |
| @@ -24,7 +24,7 @@ import com.gimi.common.cinema.model.MessageEvent; | @@ -24,7 +24,7 @@ import com.gimi.common.cinema.model.MessageEvent; | ||
| 24 | import com.gimi.common.cinema.model.SambaMsg; | 24 | import com.gimi.common.cinema.model.SambaMsg; |
| 25 | import com.gimi.common.cinema.utils.T; | 25 | import com.gimi.common.cinema.utils.T; |
| 26 | import com.gimi.common.cinema.utils.WifiApManger; | 26 | import com.gimi.common.cinema.utils.WifiApManger; |
| 27 | -import com.qnbar.smc.service.SocketService; | 27 | +import com.qnbar.smc.service.SocketService1; |
| 28 | import com.xgimi.gimicinema.BuildConfig; | 28 | import com.xgimi.gimicinema.BuildConfig; |
| 29 | import com.xgimi.gimicinema.R; | 29 | import com.xgimi.gimicinema.R; |
| 30 | import com.xgimi.gimicinema.mview.ISettingView; | 30 | import com.xgimi.gimicinema.mview.ISettingView; |
| @@ -336,7 +336,7 @@ public class SettingActivity extends BaseActivity implements ISettingView { | @@ -336,7 +336,7 @@ public class SettingActivity extends BaseActivity implements ISettingView { | ||
| 336 | } | 336 | } |
| 337 | 337 | ||
| 338 | public void testOpenDoor(View view) { | 338 | public void testOpenDoor(View view) { |
| 339 | - openDoor(SocketService.JUST_OPEN_DOOR, "setting test open door"); | 339 | + openDoor(SocketService1.JUST_OPEN_DOOR, "setting test open door"); |
| 340 | // PollingUtils.stopPollingService(this.getApplicationContext(), PollingServiceDemo.class, PollingService.ACTION); | 340 | // PollingUtils.stopPollingService(this.getApplicationContext(), PollingServiceDemo.class, PollingService.ACTION); |
| 341 | // new SystemUtils().closeFtLed(this);;//test close led,could open by power | 341 | // new SystemUtils().closeFtLed(this);;//test close led,could open by power |
| 342 | } | 342 | } |
| @@ -48,7 +48,7 @@ public class CinemaControlService extends Service { | @@ -48,7 +48,7 @@ public class CinemaControlService extends Service { | ||
| 48 | private int currentState = 0; | 48 | private int currentState = 0; |
| 49 | private String currentPath = null; | 49 | private String currentPath = null; |
| 50 | // private static final int SAVE_BEAT = 500; | 50 | // private static final int SAVE_BEAT = 500; |
| 51 | - private static final int SAVE_BEAT = 100;//default 500 | 51 | + private static final int SAVE_BEAT = 5;//default 50 |
| 52 | private int saveBeat = SAVE_BEAT; | 52 | private int saveBeat = SAVE_BEAT; |
| 53 | 53 | ||
| 54 | private final ICinemaControl.Stub cinemaControl = new ICinemaControl.Stub() { | 54 | private final ICinemaControl.Stub cinemaControl = new ICinemaControl.Stub() { |
| @@ -73,10 +73,10 @@ public class CinemaControlService extends Service { | @@ -73,10 +73,10 @@ public class CinemaControlService extends Service { | ||
| 73 | public void setCurrentMoviePosition(long duration) throws RemoteException { | 73 | public void setCurrentMoviePosition(long duration) throws RemoteException { |
| 74 | // Log.d("aidl", "setCurrentMoviePosition: " + duration); | 74 | // Log.d("aidl", "setCurrentMoviePosition: " + duration); |
| 75 | currentPosition = duration; | 75 | currentPosition = duration; |
| 76 | - if (saveBeat-- <= 0) { | 76 | + if (saveBeat-- == 0) { |
| 77 | //TODO 保存当前进度,需要时从保存位置开始播放,取消播放器播放记录功能 | 77 | //TODO 保存当前进度,需要时从保存位置开始播放,取消播放器播放记录功能 |
| 78 | // 播放一段时间确保状态为关闭 | 78 | // 播放一段时间确保状态为关闭 |
| 79 | - saveBeat = SAVE_BEAT; | 79 | +// saveBeat = SAVE_BEAT; |
| 80 | try { | 80 | try { |
| 81 | if (!fadeOuting && Lights.getInstance().getByMeshAddress( | 81 | if (!fadeOuting && Lights.getInstance().getByMeshAddress( |
| 82 | ((FangTangApplication) getApplication()).getConnectDevice().meshAddress).status | 82 | ((FangTangApplication) getApplication()).getConnectDevice().meshAddress).status |
| @@ -129,7 +129,7 @@ public class CinemaControlService extends Service { | @@ -129,7 +129,7 @@ public class CinemaControlService extends Service { | ||
| 129 | // EventBus.getDefault().post(msgEvent); | 129 | // EventBus.getDefault().post(msgEvent); |
| 130 | break; | 130 | break; |
| 131 | case 2://暂停 | 131 | case 2://暂停 |
| 132 | - fadeIn(); | 132 | +// fadeIn(); |
| 133 | // msgEvent.setEventId(0x19910); | 133 | // msgEvent.setEventId(0x19910); |
| 134 | // msgEvent.setMessage("open_switch"); | 134 | // msgEvent.setMessage("open_switch"); |
| 135 | // EventBus.getDefault().post(msgEvent); | 135 | // EventBus.getDefault().post(msgEvent); |
Please
register
or
login
to post a comment