From 5f12988a77d078a5e5155c9a301e45bfd288d7e5 Mon Sep 17 00:00:00 2001
From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期五, 11 八月 2017 16:02:50 +0800
Subject: [PATCH]
---
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DeviceMng.java | 8
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/bitmap/MyBitmapUtils.java | 51 +++
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/SurveillanceFragment.java | 110 +++++++
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/MjpegInputStream.java | 82 +++++
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/bitmap/LocalCacheUtils.java | 71 ++++
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/DeviceFragment.java | 31 +
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/PhoneCallMng.java | 27 +
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/AppApi.java | 2
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/MD5Encoder.java | 19 +
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SurveillanceQueryItemUtil.java | 2
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/checkin/CheckInRightIntervieweeCell.java | 4
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/InternetAccessThread.java | 69 +++-
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/MjpegView.java | 210 ++++++++++++++
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/ToastUtil.java | 18 +
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/bitmap/NetCacheUtils.java | 131 ++++++++
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/bitmap/MemoryCacheUtils.java | 57 +++
16 files changed, 854 insertions(+), 38 deletions(-)
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/DeviceFragment.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/DeviceFragment.java
index 4ce84c5..ef53c46 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/DeviceFragment.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/DeviceFragment.java
@@ -6,6 +6,7 @@
import android.view.View;
import android.widget.EditText;
import android.widget.FrameLayout;
+import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.Toast;
@@ -102,6 +103,11 @@
private EditText fragment_device_right_device_info_device_address;
@ViewInject(R.id.fragment_device_right_device_info_school_name)
private EditText fragment_device_right_device_info_school_name;
+ @ViewInject(R.id.fragment_device_left_parent)
+ private LinearLayout fragment_device_left_parent;
+ @ViewInject(R.id.fragment_device_right_parent)
+ private LinearLayout fragment_device_right_parent;
+
private View wifiView;
private View lanView;
@@ -111,6 +117,7 @@
private DeviceQueryItem camera1;
private DeviceQueryItem camera2;
+ private Device androidDevice;
public DeviceQueryItem getCamera2() {
return camera2;
@@ -144,8 +151,23 @@
ViewUtils.inject(this, camera2View);
fragment_device_left_wifi_check_box.setChecked(true);
loadSharedPreferenceValues();
- setupUI(getLeftView());
- setupUI(getRightView());
+ setupUI(fragment_device_left_parent);
+ setupUI(fragment_device_right_parent);
+ setupUI(wifiView);
+ setupUI(lanView);
+ setupUI(schoolView);
+ setupUI(camera1View);
+ setupUI(camera2View);
+ }
+
+ @OnClick(R.id.fragment_device_left_parent)
+ public void fragment_device_left_parent_click(View view) {
+ System.out.println("aa");
+ }
+
+ @OnClick(R.id.fragment_device_right_parent)
+ public void fragment_device_right_parent_click(View view) {
+ System.out.println("aa");
}
private void loadSharedPreferenceValues() {
@@ -367,7 +389,10 @@
}
public void setAndroidDevice(Device androidDevice) {
-
+ this.androidDevice = androidDevice;
+ fragment_device_right_device_info_school_name.setText(androidDevice.getSchoolName());
+ fragment_device_right_device_info_sn.setText(androidDevice.getSn());
+ fragment_device_right_device_info_device_address.setText(androidDevice.getInstallAddress());
}
public void setCamera1(DeviceQueryItem camera1) {
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/SurveillanceFragment.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/SurveillanceFragment.java
index 01d36d3..49b6366 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/SurveillanceFragment.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/SurveillanceFragment.java
@@ -1,7 +1,10 @@
package cn.com.basic.face.fragment;
-import android.app.AlarmManager;
import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.Canvas;
+import android.net.Uri;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Bundle;
@@ -17,12 +20,17 @@
import com.bsk.zhangbo.demoforbsk.R;
+import cn.com.basic.face.base.BaseApplication;
import cn.com.basic.face.base.BaseFragment;
import cn.com.basic.face.base.MainActivity;
import cn.com.basic.face.discern.common.CommonVariables;
-import cn.com.basic.face.service.DeviceMng;
+import cn.com.basic.face.discern.query.item.SurveillanceQueryItem;
import cn.com.basic.face.thread.StartCameraThread;
+import cn.com.basic.face.util.FileUtil;
+import cn.com.basic.face.util.MjpegInputStream;
+import cn.com.basic.face.util.MjpegView;
+import cn.com.basic.face.util.NativeImg;
import cn.com.basic.face.util.RtspFaceNative;
import cn.com.basic.face.service.SurveillanceMng;
@@ -32,8 +40,9 @@
import com.lidroid.xutils.view.annotation.ViewInject;
import com.lidroid.xutils.view.annotation.event.OnClick;
+import com.luxand.FSDK;
-import java.io.DataOutputStream;
+import java.io.File;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
@@ -67,6 +76,8 @@
private RelativeLayout fragment_supervisory_enter_camera_relative_layout;
@ViewInject(R.id.fragment_surveillance_bottom_linear_layout)
private LinearLayout fragment_surveillance_bottom_linear_layout;
+ @ViewInject(R.id.myVideoView)
+ private MjpegView myVideoView;
StartCameraThread startEnterCameraThread = null;
StartCameraThread startExitCameraThread = null;
@@ -187,6 +198,99 @@
fragment_supervisory_enter_camera_relative_layout.addView(MainActivity.getInstance().mPreview);
fragment_supervisory_enter_camera_relative_layout.addView(MainActivity.getInstance().mDraw);
}
+ Uri vidUri = Uri.parse("http://192.168.1.13:8080/video");
+ //myVideoView.setVideoURI(vidUri);
+ //myVideoView.setVideoPath("http://192.168.1.13:8080/video");
+ //myVideoView.start();
+ if (1!=1) {
+ new Thread() {
+ @Override
+ public void run() {
+ FSDK.HCamera cameraHandle = new FSDK.HCamera();
+ boolean opened = false;
+ int res = FSDK.ActivateLibrary("");
+ if (res == FSDK.FSDKE_OK) {
+ FSDK.Initialize();
+
+ FSDK.FSDK_VIDEOCOMPRESSIONTYPE type = new FSDK.FSDK_VIDEOCOMPRESSIONTYPE();
+ type.type=FSDK.FSDK_VIDEOCOMPRESSIONTYPE.FSDK_MJPEG;
+ FSDK.OpenIPVideoCamera(type,"http://192.168.1.13:8080/video",
+ "username","password",500, cameraHandle);
+ opened = true;
+ }
+ int tracId = 0;
+ while(true) {
+ try {
+ if (opened) {
+ FSDK.HImage imageHandle = new FSDK.HImage();
+ int res1 = FSDK.GrabFrame(cameraHandle, imageHandle);
+ if (res1 == FSDK.FSDKE_OK) {// grab the current frame from the camera
+ FSDK.TFaces FacePositions = new FSDK.TFaces();
+ int res3 = FSDK.DetectMultipleFaces(imageHandle, FacePositions);
+ if(res3 == FSDK.FSDKE_OK) {
+ if (FacePositions.faces != null) {
+ for (FSDK.TFacePosition fp : FacePositions.faces ) {
+ System.out.println("2:"+fp.xc);
+ int x1 = (int)(fp.xc - 1.2*fp.w / 2);
+ int y1 = (int)(fp.yc - 1.4*fp.w / 2);
+ int x2 = (int)(fp.xc + 1.2*fp.w / 2);
+ int y2 = (int)(fp.yc + 1.4*fp.w / 2);
+ FSDK.HImage img2 = new FSDK.HImage();
+ FSDK.CreateEmptyImage(img2);
+ FSDK.CopyRect(imageHandle, x1, y1, x2, y2, img2);
+ FSDK.SetJpegCompressionQuality(100);
+ String fileName = MainActivity.getInstance().getFilesDir()+"/"+System.currentTimeMillis()+".jpg";
+ int res4 = FSDK.SaveImageToFile(img2, fileName);
+ if (res4 == FSDK.FSDKE_OK) {
+ System.out.println(fileName);
+ }
+ List bitmapList = new ArrayList();
+ for (int i = 0; i < 1; i++) {
+ NativeImg nativeImg = new NativeImg();
+ nativeImg.image = FileUtil.readFile(new File(fileName));
+ nativeImg.size = nativeImg.image.length;
+ SurveillanceQueryItem surveillanceQueryItem = new SurveillanceQueryItem();
+ surveillanceQueryItem.setNativeImg(nativeImg);
+ nativeImg.st_track_id = ++tracId;
+ surveillanceQueryItem.setStTrackId(nativeImg.st_track_id);
+ BitmapFactory.Options options = new BitmapFactory.Options();
+ options.inMutable = true;
+ Bitmap bmp = BitmapFactory.decodeByteArray(nativeImg.image, 0, nativeImg.image.length, options);
+ Canvas canvas1 = new Canvas(bmp);
+
+ surveillanceQueryItem.setBitmap(bmp);
+ surveillanceQueryItem.setWidth("100");
+ surveillanceQueryItem.setHeight("100");
+ surveillanceQueryItem.setRegisterOrCheckIn(CommonVariables.Surveillance.OFFLINE_SURVEILLANCE_ITEM_TYPE);
+ surveillanceQueryItem.setCreateTime(new Date());
+ bitmapList.add(surveillanceQueryItem);
+
+ if (BaseApplication.getInstance().networkAvailable()) {
+ SurveillanceMng.getInstance().addBitmap(bitmapList, nativeImg.image, 0, CommonVariables.Camera.IN+"", nativeImg.image);
+ } else {
+ SurveillanceMng.getInstance().addOfflineBitmap(bitmapList, nativeImg.image, CommonVariables.Camera.IN+"");
+ }
+ }
+
+ }
+ }
+ }
+
+ }
+ }
+ Thread.sleep(5);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ /*myVideoView.setSource(MjpegInputStream.read("http://192.168.1.13:8080/video"));
+ myVideoView.setDisplayMode(MjpegView.SIZE_BEST_FIT);
+ myVideoView.showFps(false);
+ */
+ }
+ }.start();
+ }
+ //fragment_supervisory_enter_camera.setVisibility(View.GONE);
fragment_supervisory_enter_camera.getHolder().addCallback(new SurfaceHolder.Callback() {
public void surfaceCreated(SurfaceHolder holder) {
if (CommonVariables.EMULATOR) {
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DeviceMng.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DeviceMng.java
index bc5dc95..353dec7 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DeviceMng.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DeviceMng.java
@@ -2,7 +2,12 @@
import android.content.Context;
import android.content.SharedPreferences;
+import android.view.View;
+import android.view.inputmethod.InputMethodManager;
import android.widget.Toast;
+
+import com.bsk.zhangbo.demoforbsk.R;
+import com.lidroid.xutils.view.annotation.event.OnClick;
import cn.com.basic.face.base.BaseApplication;
import cn.com.basic.face.base.MainActivity;
@@ -30,6 +35,7 @@
import cn.com.basic.face.util.SharedPreferencesUtils;
import cn.com.basic.face.service.sync.SyncUpThread;
import cn.com.basic.face.util.SqliteSqlUtil;
+import cn.com.basic.face.util.ToastUtil;
public class DeviceMng {
public static DeviceMng instance = new DeviceMng();
@@ -172,7 +178,7 @@
}
}
} else {
- Toast.makeText(BaseApplication.getInstance(), "鏁版嵁搴撲腑鎵句笉鍒拌璁惧", Toast.LENGTH_SHORT).show();
+ ToastUtil.show("鏁版嵁搴撲腑鎵句笉鍒拌璁惧");
}
}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/InternetAccessThread.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/InternetAccessThread.java
index 84e1c79..afd902b 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/InternetAccessThread.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/InternetAccessThread.java
@@ -1,8 +1,10 @@
package cn.com.basic.face.service;
+import android.app.ActivityManager;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
+import android.text.format.Formatter;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
@@ -10,6 +12,7 @@
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
+import java.util.List;
import cn.com.basic.face.base.BaseApplication;
import cn.com.basic.face.base.MainActivity;
@@ -28,6 +31,25 @@
} else {
MainActivity.getInstance().setInternetAccessible(CommonVariables.InternetAccess.INTERNET_NOT_ACCESSIBLE);
}
+
+
+// ActivityManager activityManager = (ActivityManager)MainActivity.getInstance().getSystemService(Context.ACTIVITY_SERVICE);
+// List<ActivityManager.RunningAppProcessInfo> runningAppProcessInfos = activityManager.getRunningAppProcesses();
+// int size = runningAppProcessInfos.size();
+//
+// ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();
+//
+// activityManager.getMemoryInfo(memoryInfo);
+//
+// long availMem = memoryInfo.availMem;
+//
+// long totalMem = memoryInfo.totalMem;
+//
+// System.out.println("availMem="+Formatter.formatFileSize(MainActivity.getInstance(), availMem)+",totalMem="+
+// Formatter.formatFileSize(MainActivity.getInstance(), totalMem));
+
+
+
} catch (Exception e) {
e.printStackTrace();
}
@@ -83,29 +105,30 @@
} catch (Exception e) {
return false;
}
- StringBuilder cPlusPlusServerResponse = new StringBuilder();
- try {
- URL url = new URL("http://60.205.222.4:8080");
- URLConnection urlCon = url.openConnection();
- urlCon.setConnectTimeout(1500);
- InputStream is = urlCon.getInputStream();
- BufferedInputStream bis = new BufferedInputStream(is);
-
- BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(bis));
-
- String line;
- while ((line = bufferedReader.readLine()) != null) {
- cPlusPlusServerResponse.append(line).append('\n');
- }
- bufferedReader.close();
- bis.close();
- is.close();
- } catch (Exception e) {
- return false;
- }
- if (javaServerResponse.toString().indexOf("Hello World!") > -1 &&
- cPlusPlusServerResponse.indexOf("ip") > -1
- ) {
+// StringBuilder cPlusPlusServerResponse = new StringBuilder();
+// try {
+// URL url = new URL("http://60.205.222.4:8080");
+// URLConnection urlCon = url.openConnection();
+// urlCon.setConnectTimeout(1500);
+// InputStream is = urlCon.getInputStream();
+// BufferedInputStream bis = new BufferedInputStream(is);
+//
+// BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(bis));
+//
+// String line;
+// while ((line = bufferedReader.readLine()) != null) {
+// cPlusPlusServerResponse.append(line).append('\n');
+// }
+// bufferedReader.close();
+// bis.close();
+// is.close();
+// } catch (Exception e) {
+// return false;
+// }
+// if (cPlusPlusServerResponse.indexOf("ip") < 0) {
+// return false;
+// }
+ if (javaServerResponse.toString().indexOf("Hello World!") > -1) {
return true;
} else {
return false;
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/PhoneCallMng.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/PhoneCallMng.java
index 4c1f763..1d63e26 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/PhoneCallMng.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/PhoneCallMng.java
@@ -26,7 +26,9 @@
import cn.com.basic.face.service.sqlite.PhoneCallDao;
import cn.com.basic.face.util.AppApi;
import cn.com.basic.face.util.CharacterParser;
+import cn.com.basic.face.util.RtspFaceNative;
import cn.com.basic.face.util.SqliteSqlUtil;
+import cn.com.basic.face.util.ToastUtil;
public class PhoneCallMng extends BaseMng {
@@ -137,17 +139,33 @@
});
}
- public void addPhoneCall(CheckInQueryItem visitor, CheckInQueryItem interviewee) {
+ public void addPhoneCall(CheckInQueryItem visitor, CheckInQueryItem interviewee, boolean isMobilePhone) {
if (visitor == null) {
- Toast.makeText(MainActivity.getInstance(), "璇峰厛閫夋嫨鏉ヨ浜�", Toast.LENGTH_SHORT).show();
+ ToastUtil.show("璇峰厛閫夋嫨鏉ヨ浜�");
return;
}
if (interviewee == null) {
- Toast.makeText(MainActivity.getInstance(), "璇峰厛閫夋嫨琚浜�", Toast.LENGTH_SHORT).show();
+ ToastUtil.show("璇峰厛閫夋嫨琚浜�");
return;
}
+ if (isMobilePhone) {
+ String mobilePhone = interviewee.getMobilePhone();
+ if (mobilePhone == null || mobilePhone.trim().length() != 11) {
+ ToastUtil.show("鎵嬫満鍙风爜涓嶆纭�");
+ return;
+ }
+ RtspFaceNative.teleCall(mobilePhone);
+ } else {
+ String tel = interviewee.getTel();
+ if (tel == null || tel.trim().length() == 0) {
+ ToastUtil.show("搴ф満涓嶆纭�");
+ return;
+ }
+ RtspFaceNative.teleCall(tel);
+ }
+
if (BaseApplication.getInstance().networkAvailable()) {
- Toast.makeText(MainActivity.getInstance(), "宸叉坊鍔犲埌鍛煎彨璁板綍", Toast.LENGTH_SHORT).show();
+ Toast.makeText(MainActivity.getInstance(), "", Toast.LENGTH_SHORT).show();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.PHONE_CALL_ADD);
params.addBodyParameter(PhoneCall.FieldNames.date, sdf.format(new Date()));
@@ -163,6 +181,7 @@
} else {
PhoneCallDao.getInstance().addPhoneCall(visitor, interviewee);
}
+ ToastUtil.show("宸叉坊鍔犲埌鍛煎彨璁板綍");
}
}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/AppApi.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/AppApi.java
index b05aa76..7e6d480 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/AppApi.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/AppApi.java
@@ -8,7 +8,7 @@
//public final static String BASE_URL = "http://192.168.1.51/face/";
// public final static String BASE_URL = "http://192.168.1.51:8333/face/";
//public final static String BASE_URL = "http://192.168.1.101:8080/face/";
- public final static String BASE_URL = "http://192.168.1.36:8080/face/";
+ public final static String BASE_URL = "http://192.168.1.92:8080/face/";
// public final static String BASE_URL = "http://192.168.1.51:8333/face/";
// public final static String BASE_URL = "http://192.168.1.53:8082/face/";
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/MD5Encoder.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/MD5Encoder.java
new file mode 100644
index 0000000..d277e14
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/MD5Encoder.java
@@ -0,0 +1,19 @@
+package cn.com.basic.face.util;
+
+import java.security.MessageDigest;
+
+public class MD5Encoder {
+
+ public static String encode(String string) throws Exception {
+ byte[] hash = MessageDigest.getInstance("MD5").digest(
+ string.getBytes("UTF-8"));
+ StringBuilder hex = new StringBuilder(hash.length * 2);
+ for (byte b : hash) {
+ if ((b & 0xFF) < 0x10) {
+ hex.append("0");
+ }
+ hex.append(Integer.toHexString(b & 0xFF));
+ }
+ return hex.toString();
+ }
+}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/MjpegInputStream.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/MjpegInputStream.java
new file mode 100644
index 0000000..58a212e
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/MjpegInputStream.java
@@ -0,0 +1,82 @@
+package cn.com.basic.face.util;
+
+import java.io.BufferedInputStream;
+import java.io.ByteArrayInputStream;
+import java.io.DataInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
+import java.util.Properties;
+
+import org.apache.http.HttpResponse;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.DefaultHttpClient;
+
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+
+public class MjpegInputStream extends DataInputStream {
+ private final byte[] SOI_MARKER = { (byte) 0xFF, (byte) 0xD8 };
+ private final byte[] EOF_MARKER = { (byte) 0xFF, (byte) 0xD9 };
+ private final String CONTENT_LENGTH = "Content-Length";
+ private final static int HEADER_MAX_LENGTH = 100;
+ private final static int FRAME_MAX_LENGTH = 40000 + HEADER_MAX_LENGTH;
+ private int mContentLength = -1;
+
+ public static MjpegInputStream read(String url) {
+ HttpResponse res;
+ DefaultHttpClient httpclient = new DefaultHttpClient();
+ try {
+ res = httpclient.execute(new HttpGet(URI.create(url)));
+ return new MjpegInputStream(res.getEntity().getContent());
+ } catch (ClientProtocolException e) {
+ } catch (IOException e) {}
+ return null;
+ }
+
+ public MjpegInputStream(InputStream in) { super(new BufferedInputStream(in, FRAME_MAX_LENGTH)); }
+
+ private int getEndOfSeqeunce(DataInputStream in, byte[] sequence) throws IOException {
+ int seqIndex = 0;
+ byte c;
+ for(int i=0; i < FRAME_MAX_LENGTH; i++) {
+ c = (byte) in.readUnsignedByte();
+ if(c == sequence[seqIndex]) {
+ seqIndex++;
+ if(seqIndex == sequence.length) return i + 1;
+ } else seqIndex = 0;
+ }
+ return -1;
+ }
+
+ private int getStartOfSequence(DataInputStream in, byte[] sequence) throws IOException {
+ int end = getEndOfSeqeunce(in, sequence);
+ return (end < 0) ? (-1) : (end - sequence.length);
+ }
+
+ private int parseContentLength(byte[] headerBytes) throws IOException, NumberFormatException {
+ ByteArrayInputStream headerIn = new ByteArrayInputStream(headerBytes);
+ Properties props = new Properties();
+ props.load(headerIn);
+ return Integer.parseInt(props.getProperty(CONTENT_LENGTH));
+ }
+
+ public Bitmap readMjpegFrame() throws IOException {
+ mark(FRAME_MAX_LENGTH);
+ int headerLen = getStartOfSequence(this, SOI_MARKER);
+ reset();
+ byte[] header = new byte[headerLen];
+ readFully(header);
+ try {
+ mContentLength = parseContentLength(header);
+ } catch (NumberFormatException nfe) {
+ mContentLength = getEndOfSeqeunce(this, EOF_MARKER);
+ }
+ reset();
+ byte[] frameData = new byte[mContentLength];
+ skipBytes(headerLen);
+ readFully(frameData);
+ return BitmapFactory.decodeStream(new ByteArrayInputStream(frameData));
+ }
+}
\ No newline at end of file
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/MjpegView.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/MjpegView.java
new file mode 100644
index 0000000..650617c
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/MjpegView.java
@@ -0,0 +1,210 @@
+package cn.com.basic.face.util;
+
+import java.io.IOException;
+
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.PorterDuff;
+import android.graphics.PorterDuffXfermode;
+import android.graphics.Rect;
+import android.graphics.Typeface;
+import android.util.AttributeSet;
+import android.view.SurfaceHolder;
+import android.view.SurfaceView;
+
+public class MjpegView extends SurfaceView implements SurfaceHolder.Callback {
+ public final static int POSITION_UPPER_LEFT = 9;
+ public final static int POSITION_UPPER_RIGHT = 3;
+ public final static int POSITION_LOWER_LEFT = 12;
+ public final static int POSITION_LOWER_RIGHT = 6;
+
+ public final static int SIZE_STANDARD = 1;
+ public final static int SIZE_BEST_FIT = 4;
+ public final static int SIZE_FULLSCREEN = 8;
+
+ private MjpegViewThread thread;
+ private MjpegInputStream mIn = null;
+ private boolean showFps = false;
+ private boolean mRun = false;
+ private boolean surfaceDone = false;
+ private Paint overlayPaint;
+ private int overlayTextColor;
+ private int overlayBackgroundColor;
+ private int ovlPos;
+ private int dispWidth;
+ private int dispHeight;
+ private int displayMode;
+
+ public class MjpegViewThread extends Thread {
+ private SurfaceHolder mSurfaceHolder;
+ private int frameCounter = 0;
+ private long start;
+ private Bitmap ovl;
+
+ public MjpegViewThread(SurfaceHolder surfaceHolder, Context context) { mSurfaceHolder = surfaceHolder; }
+
+ private Rect destRect(int bmw, int bmh) {
+ int tempx;
+ int tempy;
+ if (displayMode == MjpegView.SIZE_STANDARD) {
+ tempx = (dispWidth / 2) - (bmw / 2);
+ tempy = (dispHeight / 2) - (bmh / 2);
+ return new Rect(tempx, tempy, bmw + tempx, bmh + tempy);
+ }
+ if (displayMode == MjpegView.SIZE_BEST_FIT) {
+ float bmasp = (float) bmw / (float) bmh;
+ bmw = dispWidth;
+ bmh = (int) (dispWidth / bmasp);
+ if (bmh > dispHeight) {
+ bmh = dispHeight;
+ bmw = (int) (dispHeight * bmasp);
+ }
+ tempx = (dispWidth / 2) - (bmw / 2);
+ tempy = (dispHeight / 2) - (bmh / 2);
+ return new Rect(tempx, tempy, bmw + tempx, bmh + tempy);
+ }
+ if (displayMode == MjpegView.SIZE_FULLSCREEN) return new Rect(0, 0, dispWidth, dispHeight);
+ return null;
+ }
+
+ public void setSurfaceSize(int width, int height) {
+ synchronized(mSurfaceHolder) {
+ dispWidth = width;
+ dispHeight = height;
+ }
+ }
+
+ private Bitmap makeFpsOverlay(Paint p, String text) {
+ Rect b = new Rect();
+ p.getTextBounds(text, 0, text.length(), b);
+ int bwidth = b.width()+2;
+ int bheight = b.height()+2;
+ Bitmap bm = Bitmap.createBitmap(bwidth, bheight, Bitmap.Config.ARGB_8888);
+ Canvas c = new Canvas(bm);
+ p.setColor(overlayBackgroundColor);
+ c.drawRect(0, 0, bwidth, bheight, p);
+ p.setColor(overlayTextColor);
+ c.drawText(text, -b.left+1, (bheight/2)-((p.ascent()+p.descent())/2)+1, p);
+ return bm;
+ }
+
+ public void run() {
+ start = System.currentTimeMillis();
+ PorterDuffXfermode mode = new PorterDuffXfermode(PorterDuff.Mode.DST_OVER);
+ Bitmap bm;
+ int width;
+ int height;
+ Rect destRect;
+ Canvas c = null;
+ Paint p = new Paint();
+ String fps = "";
+ while (mRun) {
+ if(surfaceDone) {
+ try {
+ c = mSurfaceHolder.lockCanvas();
+ synchronized (mSurfaceHolder) {
+ try {
+ bm = mIn.readMjpegFrame();
+ destRect = destRect(bm.getWidth(),bm.getHeight());
+ c.drawColor(Color.BLACK);
+ c.drawBitmap(bm, null, destRect, p);
+ if(showFps) {
+ p.setXfermode(mode);
+ if(ovl != null) {
+ height = ((ovlPos & 1) == 1) ? destRect.top : destRect.bottom-ovl.getHeight();
+ width = ((ovlPos & 8) == 8) ? destRect.left : destRect.right -ovl.getWidth();
+ c.drawBitmap(ovl, width, height, null);
+ }
+ p.setXfermode(null);
+ frameCounter++;
+ if((System.currentTimeMillis() - start) >= 1000) {
+ fps = String.valueOf(frameCounter)+"fps";
+ frameCounter = 0;
+ start = System.currentTimeMillis();
+ ovl = makeFpsOverlay(overlayPaint, fps);
+ }
+ }
+ } catch (IOException e) {}
+ }
+ } finally { if (c != null) mSurfaceHolder.unlockCanvasAndPost(c); }
+ }
+ }
+ }
+ }
+
+ private void init(Context context) {
+ SurfaceHolder holder = getHolder();
+ holder.addCallback(this);
+ thread = new MjpegViewThread(holder, context);
+ setFocusable(true);
+ overlayPaint = new Paint();
+ overlayPaint.setTextAlign(Paint.Align.LEFT);
+ overlayPaint.setTextSize(12);
+ overlayPaint.setTypeface(Typeface.DEFAULT);
+ overlayTextColor = Color.WHITE;
+ overlayBackgroundColor = Color.BLACK;
+ ovlPos = MjpegView.POSITION_LOWER_RIGHT;
+ displayMode = MjpegView.SIZE_STANDARD;
+ dispWidth = getWidth();
+ dispHeight = getHeight();
+ }
+
+ public void startPlayback() {
+ if(mIn != null) {
+ mRun = true;
+ thread.start();
+ }
+ }
+
+ public void stopPlayback() {
+ mRun = false;
+ boolean retry = true;
+ while(retry) {
+ try {
+ thread.join();
+ retry = false;
+ } catch (InterruptedException e) {}
+ }
+ }
+
+ public MjpegView(Context context, AttributeSet attrs) { super(context, attrs); init(context); }
+ public void surfaceChanged(SurfaceHolder holder, int f, int w, int h) { thread.setSurfaceSize(w, h); }
+
+ public void surfaceDestroyed(SurfaceHolder holder) {
+ surfaceDone = false;
+ stopPlayback();
+ }
+
+ public MjpegView(Context context) {
+ super(context);
+ init(context);
+ }
+ public void surfaceCreated(SurfaceHolder holder) {
+ surfaceDone = true;
+ }
+ public void showFps(boolean b) {
+ showFps = b;
+ }
+ public void setSource(MjpegInputStream source) {
+ mIn = source;
+ startPlayback();
+ }
+ public void setOverlayPaint(Paint p) {
+ overlayPaint = p;
+ }
+ public void setOverlayTextColor(int c) {
+ overlayTextColor = c;
+ }
+ public void setOverlayBackgroundColor(int c) {
+ overlayBackgroundColor = c;
+ }
+ public void setOverlayPosition(int p) {
+ ovlPos = p;
+ }
+ public void setDisplayMode(int s) {
+ displayMode = s;
+ }
+}
\ No newline at end of file
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SurveillanceQueryItemUtil.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SurveillanceQueryItemUtil.java
index 71c0940..32791e7 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SurveillanceQueryItemUtil.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SurveillanceQueryItemUtil.java
@@ -44,7 +44,7 @@
}
public void addItem(SurveillanceQueryItem returnItem, SurveillanceQueryItem requestItem, String cameraInOrOut) {
- if (!CommonVariables.FACE_SERVER) {
+ if (!CommonVariables.FACE_SERVER && !CommonVariables.EMULATOR) {
RtspFaceNative.setFaceLabel(Integer.parseInt(cameraInOrOut), requestItem.getStTrackId(), returnItem.getVisitorType()==null?"":returnItem.getVisitorType().substring(0,
returnItem.getVisitorType().length() > 3 ? 3 : returnItem.getVisitorType().length()
));
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/ToastUtil.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/ToastUtil.java
new file mode 100644
index 0000000..3fbd2b1
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/ToastUtil.java
@@ -0,0 +1,18 @@
+package cn.com.basic.face.util;
+
+import android.widget.Toast;
+
+import cn.com.basic.face.base.MainActivity;
+
+public class ToastUtil {
+
+ public static void show(final String message) {
+ MainActivity.getInstance().runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ Toast.makeText(MainActivity.getInstance(), message, Toast.LENGTH_SHORT).show();
+ }
+ });
+ }
+
+}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/bitmap/LocalCacheUtils.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/bitmap/LocalCacheUtils.java
new file mode 100644
index 0000000..75d9159
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/bitmap/LocalCacheUtils.java
@@ -0,0 +1,71 @@
+package cn.com.basic.face.util.bitmap;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+
+import cn.com.basic.face.util.MD5Encoder;
+
+import android.graphics.Bitmap;
+import android.graphics.Bitmap.CompressFormat;
+import android.graphics.BitmapFactory;
+import android.os.Environment;
+
+/**
+ * 鏈湴缂撳瓨
+ *
+ * @author Kevin
+ *
+ */
+public class LocalCacheUtils {
+
+ public static final String CACHE_PATH = Environment
+ .getExternalStorageDirectory().getAbsolutePath() + "/zhbj_cache_52";
+
+ /**
+ * 浠庢湰鍦皊dcard璇诲浘鐗�
+ */
+ public Bitmap getBitmapFromLocal(String url) {
+ try {
+ String fileName = MD5Encoder.encode(url);
+ File file = new File(CACHE_PATH, fileName);
+
+ if (file.exists()) {
+ Bitmap bitmap = BitmapFactory.decodeStream(new FileInputStream(
+ file));
+ return bitmap;
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ return null;
+ }
+
+ /**
+ * 鍚憇dcard鍐欏浘鐗�
+ *
+ * @param url
+ * @param bitmap
+ */
+ public void setBitmapToLocal(String url, Bitmap bitmap) {
+ try {
+ String fileName = MD5Encoder.encode(url);
+
+ File file = new File(CACHE_PATH, fileName);
+
+ File parentFile = file.getParentFile();
+ if (!parentFile.exists()) {// 濡傛灉鏂囦欢澶逛笉瀛樺湪, 鍒涘缓鏂囦欢澶�
+ parentFile.mkdirs();
+ }
+
+ // 灏嗗浘鐗囦繚瀛樺湪鏈湴
+ bitmap.compress(CompressFormat.JPEG, 100,
+ new FileOutputStream(file));
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/bitmap/MemoryCacheUtils.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/bitmap/MemoryCacheUtils.java
new file mode 100644
index 0000000..6ba9952
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/bitmap/MemoryCacheUtils.java
@@ -0,0 +1,57 @@
+package cn.com.basic.face.util.bitmap;
+
+import android.graphics.Bitmap;
+import android.support.v4.util.LruCache;
+
+import java.lang.ref.SoftReference;
+
+/**
+ * 鍐呭瓨缂撳瓨
+ *
+ * @author Kevin
+ *
+ */
+public class MemoryCacheUtils {
+
+// private HashMap<String, SoftReference<Bitmap>> mMemoryCache = new
+// HashMap<String, SoftReference<Bitmap>>();
+ private LruCache<String, Bitmap> mMemoryCache;
+
+ public MemoryCacheUtils() {
+ long maxMemory = Runtime.getRuntime().maxMemory() / 8;// 妯℃嫙鍣ㄩ粯璁ゆ槸16M
+ mMemoryCache = new LruCache<String, Bitmap>((int) maxMemory) {
+ @Override
+ protected int sizeOf(String key, Bitmap value) {
+ int byteCount = value.getRowBytes() * value.getHeight();// 鑾峰彇鍥剧墖鍗犵敤鍐呭瓨澶у皬
+ return byteCount;
+ }
+ };
+ }
+
+ /**
+ * 浠庡唴瀛樿
+ *
+ * @param url
+ */
+ public Bitmap getBitmapFromMemory(String url) {
+ // SoftReference<Bitmap> softReference = mMemoryCache.get(url);
+ // if (softReference != null) {
+ // Bitmap bitmap = softReference.get();
+ // return bitmap;
+ // }
+ return mMemoryCache.get(url);
+ }
+
+ /**
+ * 鍐欏唴瀛�
+ *
+ * @param url
+ * @param bitmap
+ */
+ public void setBitmapToMemory(String url, Bitmap bitmap) {
+// SoftReference<Bitmap> softReference = new
+// SoftReference<Bitmap>(bitmap);
+// mMemoryCache.put(url, softReference);
+ mMemoryCache.put(url, bitmap);
+ }
+}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/bitmap/MyBitmapUtils.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/bitmap/MyBitmapUtils.java
new file mode 100644
index 0000000..f4aa926
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/bitmap/MyBitmapUtils.java
@@ -0,0 +1,51 @@
+package cn.com.basic.face.util.bitmap;
+
+import android.graphics.Bitmap;
+import android.widget.ImageView;
+
+//import com.itheima.zhbj52.R;
+
+/**
+ * 鑷畾涔夊浘鐗囧姞杞藉伐鍏�
+ *
+ * @author Kevin
+ *
+ */
+public class MyBitmapUtils {
+
+ NetCacheUtils mNetCacheUtils;
+ LocalCacheUtils mLocalCacheUtils;
+ MemoryCacheUtils mMemoryCacheUtils;
+
+ public MyBitmapUtils() {
+ mMemoryCacheUtils = new MemoryCacheUtils();
+ mLocalCacheUtils = new LocalCacheUtils();
+ mNetCacheUtils = new NetCacheUtils(mLocalCacheUtils, mMemoryCacheUtils);
+ }
+
+ public void display(ImageView ivPic, String url) {
+ //ivPic.setImageResource(R.drawable.news_pic_default);// 璁剧疆榛樿鍔犺浇鍥剧墖
+
+ Bitmap bitmap = null;
+ // 浠庡唴瀛樿
+ bitmap = mMemoryCacheUtils.getBitmapFromMemory(url);
+ if (bitmap != null) {
+ ivPic.setImageBitmap(bitmap);
+ System.out.println("浠庡唴瀛樿鍙栧浘鐗囧暒...");
+ return;
+ }
+
+ // 浠庢湰鍦拌
+ bitmap = mLocalCacheUtils.getBitmapFromLocal(url);
+ if (bitmap != null) {
+ ivPic.setImageBitmap(bitmap);
+ System.out.println("浠庢湰鍦拌鍙栧浘鐗囧暒...");
+ mMemoryCacheUtils.setBitmapToMemory(url, bitmap);// 灏嗗浘鐗囦繚瀛樺湪鍐呭瓨
+ return;
+ }
+
+ // 浠庣綉缁滆
+ mNetCacheUtils.getBitmapFromNet(ivPic, url);
+ }
+
+}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/bitmap/NetCacheUtils.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/bitmap/NetCacheUtils.java
new file mode 100644
index 0000000..f3299bf
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/bitmap/NetCacheUtils.java
@@ -0,0 +1,131 @@
+package cn.com.basic.face.util.bitmap;
+
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.os.AsyncTask;
+import android.widget.ImageView;
+
+/**
+ * 缃戠粶缂撳瓨
+ *
+ * @author Kevin
+ *
+ */
+public class NetCacheUtils {
+
+ private LocalCacheUtils mLocalCacheUtils;
+ private MemoryCacheUtils mMemoryCacheUtils;
+
+ public NetCacheUtils(LocalCacheUtils localCacheUtils,
+ MemoryCacheUtils memoryCacheUtils) {
+ mLocalCacheUtils = localCacheUtils;
+ mMemoryCacheUtils = memoryCacheUtils;
+ }
+
+ /**
+ * 浠庣綉缁滀笅杞藉浘鐗�
+ *
+ * @param ivPic
+ * @param url
+ */
+ public void getBitmapFromNet(ImageView ivPic, String url) {
+ new BitmapTask().execute(ivPic, url);// 鍚姩AsyncTask,
+ // 鍙傛暟浼氬湪doInbackground涓幏鍙�
+ }
+
+ /**
+ * Handler鍜岀嚎绋嬫睜鐨勫皝瑁�
+ *
+ * 绗竴涓硾鍨�: 鍙傛暟绫诲瀷 绗簩涓硾鍨�: 鏇存柊杩涘害鐨勬硾鍨�, 绗笁涓硾鍨嬫槸onPostExecute鐨勮繑鍥炵粨鏋�
+ *
+ * @author Kevin
+ *
+ */
+ class BitmapTask extends AsyncTask<Object, Void, Bitmap> {
+
+ private ImageView ivPic;
+ private String url;
+
+ /**
+ * 鍚庡彴鑰楁椂鏂规硶鍦ㄦ鎵ц, 瀛愮嚎绋�
+ */
+ @Override
+ protected Bitmap doInBackground(Object... params) {
+ ivPic = (ImageView) params[0];
+ url = (String) params[1];
+
+ ivPic.setTag(url);// 灏唘rl鍜宨mageview缁戝畾
+
+ return downloadBitmap(url);
+ }
+
+ /**
+ * 鏇存柊杩涘害, 涓荤嚎绋�
+ */
+ @Override
+ protected void onProgressUpdate(Void... values) {
+ super.onProgressUpdate(values);
+ }
+
+ /**
+ * 鑰楁椂鏂规硶缁撴潫鍚�,鎵ц璇ユ柟娉�, 涓荤嚎绋�
+ */
+ @Override
+ protected void onPostExecute(Bitmap result) {
+ if (result != null) {
+ String bindUrl = (String) ivPic.getTag();
+
+ if (url.equals(bindUrl)) {// 纭繚鍥剧墖璁惧畾缁欎簡姝g‘鐨刬mageview
+ ivPic.setImageBitmap(result);
+ mLocalCacheUtils.setBitmapToLocal(url, result);// 灏嗗浘鐗囦繚瀛樺湪鏈湴
+ mMemoryCacheUtils.setBitmapToMemory(url, result);// 灏嗗浘鐗囦繚瀛樺湪鍐呭瓨
+ System.out.println("浠庣綉缁滅紦瀛樿鍙栧浘鐗囧暒...");
+ }
+ }
+ }
+ }
+
+ /**
+ * 涓嬭浇鍥剧墖
+ *
+ * @param url
+ * @return
+ */
+ private Bitmap downloadBitmap(String url) {
+
+ HttpURLConnection conn = null;
+ try {
+ conn = (HttpURLConnection) new URL(url).openConnection();
+
+ conn.setConnectTimeout(5000);
+ conn.setReadTimeout(5000);
+ conn.setRequestMethod("GET");
+ conn.connect();
+
+ int responseCode = conn.getResponseCode();
+ if (responseCode == 200) {
+ InputStream inputStream = conn.getInputStream();
+
+ //鍥剧墖鍘嬬缉澶勭悊
+ BitmapFactory.Options option = new BitmapFactory.Options();
+ option.inSampleSize = 2;//瀹介珮閮藉帇缂╀负鍘熸潵鐨勪簩鍒嗕箣涓�, 姝ゅ弬鏁伴渶瑕佹牴鎹浘鐗囪灞曠ず鐨勫ぇ灏忔潵纭畾
+ option.inPreferredConfig = Bitmap.Config.RGB_565;//璁剧疆鍥剧墖鏍煎紡
+
+ Bitmap bitmap = BitmapFactory.decodeStream(inputStream, null, option);
+ return bitmap;
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ conn.disconnect();
+ }
+
+ return null;
+ }
+
+}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/checkin/CheckInRightIntervieweeCell.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/checkin/CheckInRightIntervieweeCell.java
index ac58a71..ff82c75 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/checkin/CheckInRightIntervieweeCell.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/checkin/CheckInRightIntervieweeCell.java
@@ -90,12 +90,12 @@
@OnClick(R.id.fragment_check_in_right_interviewee_cell_call_tel)
public void fragment_check_in_right_interviewee_cell_call_tel_click(View view) {
- PhoneCallMng.getInstance().addPhoneCall(CheckInFragment.getInstance().getFragment_check_in_right_visitor_cell().getVisitor(), item);
+ PhoneCallMng.getInstance().addPhoneCall(CheckInFragment.getInstance().getFragment_check_in_right_visitor_cell().getVisitor(), item, false);
}
@OnClick(R.id.fragment_check_in_right_interviewee_cell_call_mobile)
public void fragment_check_in_right_interviewee_cell_call_mobile_click(View view) {
- PhoneCallMng.getInstance().addPhoneCall(CheckInFragment.getInstance().getFragment_check_in_right_visitor_cell().getVisitor(), item);
+ PhoneCallMng.getInstance().addPhoneCall(CheckInFragment.getInstance().getFragment_check_in_right_visitor_cell().getVisitor(), item, true);
}
public void resetForm() {
--
Gitblit v1.8.0