public static void DevliverStringMessage(String cmd){\r
CoreService.getInstance().connection.DeliverCMDMessageToSystem(cmd,"");\r
}\r
-\r
+ public static void DevliverStringMessage(String cmd,String str){\r
+ CoreService.getInstance().connection.DeliverCMDMessageToSystem(cmd,str);\r
+ }\r
public void checkKeepSitting(){\r
String dateyyyyMMDDhhmmss=TimeUtil.getSystemTime3();\r
String sleepdate=TimeUtil.getCurrentSleepRecordDate(dateyyyyMMDDhhmmss);\r
import android.content.ComponentName;
import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.Color;
+import android.os.Environment;
import android.os.Handler;
import android.os.Message;
+import android.os.StatFs;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import com.enqualcomm.support.utils.DeviceInfoUtil;
+import com.enqualcomm.support.utils.ICLogger;
+import com.enqualcomm.support.utils.ImageUtil;
+import com.enqualcomm.support.utils.TimeUtil;
import com.enqualcomm.support.utils.Util;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
});
+
+
// SimSignalUtil.send_at_to_onoff_simcard(CoreService.getInstance().runtime));
// tbtnblood.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
TextView tv_version=(TextView)findViewById(R.id.textViewVersion);
tv_version.setText(DeviceInfoUtil.getVersionCode(this)+"-"+DeviceInfoUtil.getVersionName(this));
-
+// testpic();
}
@Override
showmessage=false;
+ }
+
+ public void testpic(){
+
+ String str = null;
+ try {
+ if (Environment.getExternalStorageState().equals("mounted")) {
+// if ((new StatFs(Environment.getExternalStorageDirectory().toString())).getAvailableBytes() < paramArrayOfByte.length)
+
+ str = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath();
+ StringBuilder stringBuilder = new StringBuilder();
+ stringBuilder.append(str);
+ stringBuilder.append("/TakePhoto_080835");
+ stringBuilder.append(".jpg");
+ str = stringBuilder.toString();
+ Bitmap bitmap2 =BitmapFactory.decodeFile(str);
+// Bitmap bitmap2 = BitmapFactory.decodeByteArray(paramArrayOfByte, 0, paramArrayOfByte.length);
+// Bitmap bitmap1 = bitmap2;
+ Bitmap bitmap3 = bitmap2;
+ if ((this.getResources().getConfiguration()).orientation == 1) {
+// Matrix matrix = new Matrix();
+// matrix.reset();
+ // matrix.postRotate(this.mOrientation);
+ // bitmap1 = Bitmap.createBitmap(bitmap2, 0, 0, bitmap2.getWidth(), bitmap2.getHeight(), matrix, true);
+
+ }
+ bitmap3 = ImageUtil.drawTextToLeftTop(this,bitmap2, TimeUtil.getSystemTime(),24, Color.RED, 20, 20);
+ str = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath();
+ stringBuilder = new StringBuilder();
+ stringBuilder.append(str);
+ stringBuilder.append("/TakePhoto_0808352");
+ stringBuilder.append(".jpg");
+ str = stringBuilder.toString();
+ File file = new File(str);
+ if (!file.exists())
+ file.createNewFile();
+ BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(file));
+ bitmap3.compress(Bitmap.CompressFormat.JPEG, 100, bufferedOutputStream);
+ bufferedOutputStream.flush();
+ bufferedOutputStream.close();
+
+ ICLogger.i("Take Photo and Save to "+str);
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+
+ }
+
+
}
private View.OnClickListener clickListener = new View.OnClickListener() {
import com.enqualcomm.support.Constants;\r
import com.enqualcomm.support.CoreService;\r
import com.enqualcomm.support.R;\r
+import com.enqualcomm.support.bean.VoiceContent;\r
+import com.enqualcomm.support.utils.TimeUtil;\r
import com.ic.protocols.protocolAPIHelper;\r
import com.enqualcomm.support.bean.Contact;\r
import com.enqualcomm.support.bean.StringMessage;\r
import static com.enqualcomm.support.Constants.ACTION_WAKEUP_ALARM;\r
import static com.enqualcomm.support.Constants.DIALOG_ACTION;\r
import static com.enqualcomm.support.bean.Contact.CATEGORY_GROUP;\r
+import static com.enqualcomm.support.bean.Content.CONTACT_CATEGORY_GROUP;\r
\r
/**\r
* 负责发送除了login,心跳之外的所有指令\r
//收到SentVoicePacket 表示 有一个VoiceMessage要发送,需要从第0个包开始发送语音分包。\r
voicePacket voicepacket = voicePacket.getInstanceSent();\r
if (voicepacket.getCurrentIndexToSent() < voicepacket.getPacketCount()) {\r
- ICLogger.i("voicepacket " + voicepacket.getName() +" filetype "+voicepacket.getFiletype()+ " , datatype "+ voicepacket.getDateType() + voicepacket.getPacketTime() + " send " + (voicepacket.getCurrentIndexToSent() + 1) + "/" + voicepacket.getPacketCount());\r
+ ICLogger.i("voicepacket " + voicepacket.getName() + " filetype " + voicepacket.getFiletype() + " , datatype " + voicepacket.getDateType() + voicepacket.getPacketTime() + " send " + (voicepacket.getCurrentIndexToSent() + 1) + "/" + voicepacket.getPacketCount());\r
((NettyConnection) mConnection).sendMsg(\r
protocolAPIHelper.getVoicePacketItem(voicepacket.getPacketTime(),\r
voicepacket.getPacketCount(),\r
(voicepacket.getCurrentIndexToSent() + 1),\r
voicepacket.getVoicePacketWithIndex(voicepacket.getCurrentIndexToSent()).getPacketLen(),\r
- voicepacket.getVoicePacketWithIndex(voicepacket.getCurrentIndexToSent()).getPacketData(),voicepacket.getFiletype(),voicepacket.getDateType())\r
+ voicepacket.getVoicePacketWithIndex(voicepacket.getCurrentIndexToSent()).getPacketData(), voicepacket.getFiletype(), voicepacket.getDateType())\r
);\r
} else {\r
- ICLogger.i("voicepacket " + voicepacket.getName() +" filetype "+voicepacket.getFiletype()+ " , datatype "+ voicepacket.getDateType()+ " " + voicepacket.getPacketTime() + " sent Done!");\r
+ ICLogger.i("voicepacket " + voicepacket.getName() + " filetype " + voicepacket.getFiletype() + " , datatype " + voicepacket.getDateType() + " " + voicepacket.getPacketTime() + " sent Done!");\r
}\r
return true;\r
- } else if ("poweroffCheckSim".equals(paramStringMessage.cmd())) {\r
+ } else if ("PhotoRemoteTaken".equals(paramStringMessage.cmd())) {\r
+ //接收到拍照完毕命令,发送照片\r
+\r
+ String msgUrl=paramStringMessage.isFromCache();\r
+ ICLogger.i("receive taken photo to send "+msgUrl);\r
+ //创建voiceConent并添加到数据\r
+ final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, "123", msgUrl,2,2);\r
+\r
+ // 把voiceContent拆解成1024的分包\r
+ Util.parseToVoicePacketSent(voiceContent);\r
+ //trigger 分包发送\r
+ if (CoreService.getInstance().getConnection()!=null)\r
+ CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");\r
+ return true;\r
+ } else if ("poweroffCheckSim".equals(paramStringMessage.cmd())) {\r
paramRuntime.setShutdown(true);\r
\r
if (SimSignalUtil.hasSimCard(paramRuntime.getContextProxy().context))\r
context.sendBroadcast(intent);\r
}\r
});\r
+ return true;\r
+ }else if ("StartMonitor".equals(paramStringMessage.cmd())) {\r
+\r
+ String recordfilepath=Util.getRecordfilePath(mRuntime, TimeUtil.getSystemTime3());\r
+ AudioService.getInstance().startRecord(recordfilepath);\r
+ int recordtime=Integer.parseInt(paramStringMessage.isFromCache());\r
+ Observable.timer(recordtime, TimeUnit.SECONDS).subscribe(new Action1<Long>() {\r
+ public void call(Long param1Long) {\r
+\r
+ AudioService.getInstance().stopRecord();\r
+ ICLogger.i("Monitor Record to send "+recordfilepath);\r
+ //创建voiceConent并添加到数据\r
+ final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, "123", recordfilepath,1,1);\r
+\r
+ // 把voiceContent拆解成1024的分包\r
+ Util.parseToVoicePacketSent(voiceContent);\r
+ //trigger 分包发送\r
+ if (CoreService.getInstance().getConnection()!=null)\r
+ CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");\r
+\r
+ }\r
+ });\r
+ return true;\r
+ }\r
\r
- }\r
\r
\r
return false;\r
import android.content.Intent;\r
import android.graphics.Bitmap;\r
import android.graphics.BitmapFactory;\r
+import android.graphics.Color;\r
import android.graphics.Matrix;\r
import android.graphics.SurfaceTexture;\r
import android.hardware.Camera;\r
import android.view.SurfaceView;\r
import android.view.WindowManager;\r
\r
+import com.enqualcomm.support.CoreService;\r
+\r
import java.io.BufferedOutputStream;\r
import java.io.File;\r
import java.io.FileOutputStream;\r
if (CameraUtil.this.mPs.getPictureFormat() == 256) {\r
String str = CameraUtil.this.savePicture(param1ArrayOfByte);\r
if (str != null) {\r
- Intent intent = new Intent(CameraUtil.this.context, com.enqualcomm.support.CoreService.class);\r
- intent.setAction(ACTION_REMOTE_CAMERA);\r
- intent.putExtra("filepath", str);\r
- intent.putExtra("number", CameraUtil.this.mNumber);\r
- CameraUtil.this.context.startService(intent);\r
+// Intent intent = new Intent(CameraUtil.this.context, com.enqualcomm.support.CoreService.class);\r
+//// intent.setAction(ACTION_REMOTE_CAMERA);\r
+//// intent.putExtra("filepath", str);\r
+//// intent.putExtra("number", CameraUtil.this.mNumber);\r
+//// CameraUtil.this.context.startService(intent);\r
+\r
+ if (CoreService.getInstance()!=null){\r
+ CoreService.getInstance().DevliverStringMessage("PhotoRemoteTaken",str);\r
+ }\r
} else {\r
ICLogger.i("空间不足,保存失败");\r
} \r
str = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath();\r
StringBuilder stringBuilder = new StringBuilder();\r
stringBuilder.append(str);\r
- stringBuilder.append("/RemoteCamera.jpg");\r
+ stringBuilder.append("/TakePhoto_");\r
+ stringBuilder.append(this.mNumber);\r
+ stringBuilder.append(".jpg");\r
str = stringBuilder.toString();\r
Bitmap bitmap2 = BitmapFactory.decodeByteArray(paramArrayOfByte, 0, paramArrayOfByte.length);\r
- Bitmap bitmap1 = bitmap2;\r
+// Bitmap bitmap1 = bitmap2;\r
+ Bitmap bitmap3 = bitmap2;\r
if ((this.context.getResources().getConfiguration()).orientation == 1) {\r
- Matrix matrix = new Matrix();\r
- matrix.reset();\r
- matrix.postRotate(this.mOrientation);\r
- bitmap1 = Bitmap.createBitmap(bitmap2, 0, 0, bitmap2.getWidth(), bitmap2.getHeight(), matrix, true);\r
- } \r
+// Matrix matrix = new Matrix();\r
+// matrix.reset();\r
+ // matrix.postRotate(this.mOrientation);\r
+ // bitmap1 = Bitmap.createBitmap(bitmap2, 0, 0, bitmap2.getWidth(), bitmap2.getHeight(), matrix, true);\r
+// bitmap3 = ImageUtil.drawTextToLeftTop(this.context,bitmap2,TimeUtil.getSystemTime(),40,0xFF4000 ,25,-100);\r
+ }\r
+ bitmap3 = ImageUtil.drawTextToLeftTop(this.context,bitmap2,TimeUtil.getSystemTime(),30, Color.RED ,25,25);\r
File file = new File(str);\r
if (!file.exists())\r
file.createNewFile(); \r
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(file));\r
- bitmap1.compress(Bitmap.CompressFormat.JPEG, 100, bufferedOutputStream);\r
+ bitmap3.compress(Bitmap.CompressFormat.JPEG, 100, bufferedOutputStream);\r
bufferedOutputStream.flush();\r
bufferedOutputStream.close();\r
\r
AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
ICLogger.i("======setVolumnMute");
// saved_volumn = audioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL);
- audioManager.setMasterMute(true);
- audioManager.setStreamMute(AudioManager.STREAM_VOICE_CALL,true);
- audioManager.setSpeakerphoneOn(false);
+ if (audioManager != null) {
+ audioManager.setMasterMute(true);
+
+ audioManager.setStreamMute(AudioManager.STREAM_VOICE_CALL, true);
+ audioManager.setSpeakerphoneOn(false);
+ }
// SimSignalUtil.SetRingMode(context, AudioManager.RINGER_MODE_SILENT, false);
// CloseSpeaker(context);//
public static void restoreVolumn(Context context) {
ICLogger.i("======restoreVolumn "+saved_volumn);
AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
- audioManager.setMasterMute(false);
- audioManager.setStreamMute(AudioManager.STREAM_VOICE_CALL,false);
- audioManager.setSpeakerphoneOn(true);
+ if (audioManager != null) {
+ audioManager.setMasterMute(false);
+
+ audioManager.setStreamMute(AudioManager.STREAM_VOICE_CALL, false);
+ audioManager.setSpeakerphoneOn(true);
+ }
// changeToSpeaker(context);
// SimSignalUtil.SetRingMode(context, AudioManager.RINGER_MODE_NORMAL, true);
},2000L);\r
return;\r
}else if (ACTION_REMOTE_CAMERA.equals(str)) {\r
- String str1;\r
- str1 = paramIntent.getStringExtra("key_remote_number");\r
- (new CameraUtil(paramContext)).getPictur(str1);\r
+ if (paramIntent.hasExtra("remote_number")){\r
+ //接收拍照命令,执行拍照\r
+ String str1 = paramIntent.getStringExtra("remote_number");\r
+ (new CameraUtil(paramContext)).getPictur(str1);\r
+ }else{\r
+ //接收到拍照完毕命令,发送照片\r
+ String msgFrom=paramIntent.getStringExtra("number");\r
+ String msgUrl=paramIntent.getStringExtra("filepath");\r
+ ICLogger.i("receive taken photo to send "+msgUrl);\r
+ //创建voiceConent并添加到数据\r
+ final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, msgFrom, msgUrl,2,2);\r
+\r
+ // 把voiceContent拆解成1024的分包\r
+ Util.parseToVoicePacketSent(voiceContent);\r
+ //trigger 分包发送\r
+ if (CoreService.getInstance().getConnection()!=null)\r
+ CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");\r
+\r
+ }\r
+\r
+\r
return;\r
\r
}else if (DIALOG_ACTION.equals(str)) {\r
public static boolean LogfileExist(Runtime runtime,String logfilename){\r
return new File(getLogfilePath(runtime,logfilename)).exists();\r
}\r
+ public static String getRecordfilePath(Runtime runtime,String recordfilename){\r
+ StringBuilder stringBuilder = new StringBuilder();\r
+ stringBuilder.append(recordfilename);\r
+ stringBuilder.append(".amr");\r
+ File file = new File(runtime.getCacheDir(), stringBuilder.toString());\r
+ return file.getAbsolutePath();\r
+ }\r
\r
public static String getLogfilePath(Runtime runtime,String logfilename){\r
StringBuilder stringBuilder = new StringBuilder();\r
package com.ic.protocols;\r
\r
import android.content.ComponentName;\r
+import android.content.Context;\r
import android.content.Intent;\r
import android.net.Uri;\r
import android.os.Environment;\r
import com.enqualcomm.support.bean.VoiceContent;\r
import com.enqualcomm.support.bean.voicePacket;\r
import com.enqualcomm.support.service.HeartRateManager;\r
+import com.enqualcomm.support.utils.CameraUtil;\r
import com.enqualcomm.support.utils.Connection;\r
import com.enqualcomm.support.utils.ICLogger;\r
import com.enqualcomm.support.utils.NettyConnection;\r
import java.io.File;\r
import java.util.ArrayList;\r
import java.util.HashMap;\r
+import java.util.concurrent.TimeUnit;\r
+\r
+import rx.Observable;\r
+import rx.functions.Action1;\r
\r
import static com.enqualcomm.support.Constants.ACTION_HEATR_RATE_START;\r
+import static com.enqualcomm.support.Constants.ACTION_REMOTE_CAMERA;\r
import static com.enqualcomm.support.LocationClient.LOCATION_MODE;\r
import static com.enqualcomm.support.bean.Contact.GROUP_ALL;\r
import static java.lang.Math.abs;\r
BPHP,\r
APDE,//进出围栏通知\r
BPDE,\r
- APDF,//体温阀值设置\r
- BPDF,\r
+ APDG,//体温阀值设置\r
+ BPDG,\r
APTU,//上传语音图片\r
BPTU,\r
APSL,//上传睡眠数据\r
BPSL,\r
+ AP46,//立即拍照\r
+ BP46,\r
+ APDH,//聆听\r
+ BPDH,\r
+ AP99,//监听电话\r
+ BP99,\r
UNKNOWN_CMD,\r
}\r
\r
cmdMap.put(CMD_TYPE.BPHT, "BPHT");\r
cmdMap.put(CMD_TYPE.APTM, "APTM");\r
cmdMap.put(CMD_TYPE.BPTM, "BPTM");\r
+ /* 服务器发起*/\r
cmdMap.put(CMD_TYPE.AP12, "AP12");\r
cmdMap.put(CMD_TYPE.BP12, "BP12");\r
cmdMap.put(CMD_TYPE.AP14, "AP14");\r
cmdMap.put(CMD_TYPE.BPHP, "BPHP");\r
cmdMap.put(CMD_TYPE.APDE, "APDE");\r
cmdMap.put(CMD_TYPE.BPDE, "BPDE");\r
- cmdMap.put(CMD_TYPE.APDF, "APDF");\r
- cmdMap.put(CMD_TYPE.BPDF, "BPDF");\r
+ cmdMap.put(CMD_TYPE.APDG, "APDG");\r
+ cmdMap.put(CMD_TYPE.BPDG, "BPDG");\r
cmdMap.put(CMD_TYPE.APTU, "APTU");\r
cmdMap.put(CMD_TYPE.BPTU, "BPTU");\r
cmdMap.put(CMD_TYPE.APSL, "APSL");\r
cmdMap.put(CMD_TYPE.BPSL, "BPSL");\r
+ cmdMap.put(CMD_TYPE.AP46, "AP46");\r
+ cmdMap.put(CMD_TYPE.BP46, "BP46");\r
+ cmdMap.put(CMD_TYPE.APDH, "APDH");\r
+ cmdMap.put(CMD_TYPE.BPDH, "BPDH");\r
+ cmdMap.put(CMD_TYPE.AP99, "AP99");\r
+ cmdMap.put(CMD_TYPE.BP99, "BP99");\r
+\r
}\r
\r
\r
\r
\r
}\r
- public static String APDF(String id){\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APDF))\r
+ public static String APDG(String id){\r
+ return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APDG))\r
.append(CMDSPLIT).append(id)\r
.append(CMDEND).toString();\r
}\r
\r
- public void handleBPDF(NettyConnection connection,String cmd,Runtime runtime){\r
+ public void handleBPDG(NettyConnection connection,String cmd,Runtime runtime){\r
/**\r
* 示例:\r
- * IWBPDF,353456789012345,1,30.0,37.3 #\r
+ * IWBPDG,353456789012345,1,30.0,37.3 #\r
* 说明:\r
* IW:标识符\r
- * BPDF: 命令字符\r
+ * BPDG: 命令字符\r
* 353456789012345:设备IMEI或者ID\r
* 080835 :指令流水号\r
* 1:开关 1开, 0 关\r
String switch_on=list[2];\r
String min_temp=list[3];\r
String max_temp=list[4];\r
- connection.send(genStringMessage("APDF",APDF(index)));\r
+ connection.send(genStringMessage("APDG",APDG(index)));\r
if ( Integer.parseInt(switch_on) == 1) {\r
- ICLogger.i("Handle BPDF index " + index + ", 体温报警阈值开 min="+min_temp+",max="+max_temp);\r
+ ICLogger.i("Handle BPDG index " + index + ", 体温报警阈值开 min="+min_temp+",max="+max_temp);\r
}else {\r
- ICLogger.i("Handle BPDF index " + index + ", 体温报警阈值关 ");\r
+ ICLogger.i("Handle BPDG index " + index + ", 体温报警阈值关 ");\r
}\r
}else{\r
- ICLogger.i("BPDF format error!");\r
+ ICLogger.i("BPDG format error!");\r
}\r
}\r
\r
if (receiveSuccess == 1){\r
//如果服务器接收 语音成功,则设置下一个要发送的语音包Index,当index == packetCount的时候表示所有包发送完毕,停止继续发送\r
voicePacket.getInstanceSent().setCurrentIndexToSent(packetIndex);\r
+ //voicePacket.getInstanceSent().setFileType(ftype,dtype);\r
}\r
//发送消息,再次检查要发送的语音包,确认其发送完毕\r
connection.DeliverCMDMessageToSystem("SentVoicePacket","SentBPFilePacket");\r
}\r
}\r
\r
-\r
-\r
public static String APSL(String date,int deepsleep,int lightsleep,int score){\r
/***\r
* 示例:\r
return sb;\r
}\r
\r
+ public static String AP46(String id,String cmd)\r
+ {\r
+ return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP46))\r
+ .append(CMDSPLIT).append(id)\r
+ .append(CMDSPLIT).append(cmd)\r
+ .append(CMDEND).toString();\r
+ }\r
+\r
+ public void handleBP46(String cmd , NettyConnection connection,Runtime runtime) {\r
+/***\r
+ * IWBP46,353456789012345,080835,1,[参数]#\r
+ * 说明:\r
+ * IW:标识符\r
+ * BP46 : 命令字符\r
+ * 353456789012345:IMEI号,设备唯一ID\r
+ * 080835 :指令流水号\r
+ * 1: 表示立即拍照\r
+ * [参数]: 此为可选项。根据不同类型设备扩展\r
+ * #:结尾标识符\r
+ * 设备响应: IWAP46,080835,1#\r
+ * 080835:指令流水号\r
+ * 1 成功 0失败\r
+ * # 结尾标识符\r
+ */\r
+ String[] cmdlist=cmd.split(CMDSPLIT);\r
+ if (cmdlist.length==5){\r
+ String imei=cmdlist[1];\r
+ String id=cmdlist[2];\r
+ String cdd=cmdlist[3];\r
+ String tmp=cmdlist[4];\r
+\r
+ connection.send(genStringMessage("AP46",AP46(id,cdd)));\r
+\r
+ if (cdd.equals("1")) {\r
+ //delay 启动\r
+ Context context = mRuntime.getContextProxy().context.getApplicationContext();\r
+// Intent intent = new Intent(context, com.enqualcomm.support.CoreService.class);\r
+// intent.setAction(ACTION_REMOTE_CAMERA);\r
+// intent.putExtra("remote_number", id);\r
+// context.startService(intent);\r
+// runtime.getContextProxy().context.sendBroadcast(intent);\r
+ (new CameraUtil(context)).getPictur(id);\r
+ }\r
+ }else{\r
+ ICLogger.i(" BP46 Format error!");\r
+ }\r
+\r
+ }\r
+\r
+\r
+ public static String APDH(String id,String cmd)\r
+ {\r
+ return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APDH))\r
+ .append(CMDSPLIT).append(id)\r
+ .append(CMDSPLIT).append(cmd)\r
+ .append(CMDEND).toString();\r
+ }\r
+\r
+\r
+ public void handleBPDH( NettyConnection connection,Runtime runtime,String cmd) {\r
+ /***\r
+ * IWBPDH,353456789012345,080835,1,[参数]#\r
+ * 说明:\r
+ * IW:标识符\r
+ * BPDH : 命令字符\r
+ * 353456789012345:IMEI号,设备唯一ID\r
+ * 080835 :指令流水号\r
+ * 1: 表示立即聆听 可扩展\r
+ * [参数]: 此为可选项。录音时间 为空默认15秒\r
+ * #:结尾标识符\r
+ * 设备响应: IWAPDH,080835,1#\r
+ * 080835:指令流水号\r
+ * 1 成功 0失败\r
+ * # 结尾标识符\r
+ */\r
+\r
+ String[] cmdlist=cmd.split(CMDSPLIT);\r
+ if (cmdlist.length==5){\r
+ String imei=cmdlist[1];\r
+ String id=cmdlist[2];\r
+ String cdd=cmdlist[3];\r
+ String tmp=cmdlist[4];\r
+\r
+ tmp=tmp.replace(CMDEND,"").trim();\r
+\r
+ if (tmp.isEmpty()) tmp="15";\r
+ connection.send(genStringMessage("APDH",APDH(id,cdd)));\r
+\r
+ if (cdd.equals("1")) {\r
+ //delay 启动\r
+ Context context = mRuntime.getContextProxy().context.getApplicationContext();\r
+ CoreService.getInstance().DevliverStringMessage("StartMonitor",tmp);\r
+ }\r
+ }else{\r
+ ICLogger.i(" BPDH Format error!");\r
+ }\r
+ }\r
+\r
+\r
+\r
+\r
+\r
+\r
\r
public boolean handleCmd(CMD_TYPE type, String cmd) {\r
\r
mConnection.DeliverCMDMessageToSystem("StartLocate",cmd);//通知下面线程状态变化\r
break;\r
\r
-// case BP05: //L02服务器不适用\r
-// //查询服务器语音 返回信息\r
-// API.handleBP05(cmd);\r
-// break;\r
+ case BP46: //立即拍照\r
+ ICLogger.i("立即拍照!");\r
+ handleBP46(cmd,mConnection,mRuntime);\r
+ break;\r
\r
case BP12:\r
//收到设置SOS号码\r
ICLogger.i("收到服务器 图片语音 消息 BPTU");\r
// mConnection.DeliverCMDMessageToSystem("APTU", "");//通知下面线程状态变化\r
break;\r
- case BPDF:\r
- handleBPDF(mConnection,cmd,mRuntime);\r
+ case BPDG:\r
+ handleBPDG(mConnection,cmd,mRuntime);\r
ICLogger.i(" 收到 体温阈值设置!");\r
- mConnection.DeliverCMDMessageToSystem("APDF",cmd);//通知下面线程状态变化\r
+ mConnection.DeliverCMDMessageToSystem("APDG",cmd);//通知下面线程状态变化\r
break;\r
case BPSL:\r
ICLogger.i("睡眠数据上传完毕!");\r
mConnection.DeliverCMDMessageToSystem("APSL",cmd);//通知下面线程状态变化\r
break;\r
+\r
+ case BPDH:\r
+ ICLogger.i("聆听");\r
+ handleBPDH(mConnection,mRuntime,cmd);\r
+ break;\r
}\r
\r
return ret;\r
-#Tue Aug 04 21:16:19 CST 2020\r
-VERSION_CODE=475\r
+#Thu Aug 06 03:19:06 CST 2020\r
+VERSION_CODE=476\r
# Location of the SDK. This is only used by Gradle.\r
# For customization when using a Version Control System, please read the\r
# header note.\r
-#Thu Jul 30 18:51:06 CST 2020\r
-sdk.dir=C\:\\Users\\incar\\AppData\\Local\\Android\\Sdk\r
+#Wed Aug 05 23:43:00 CST 2020\r
+sdk.dir=D\:\\Android\\Sdk\r