From 5838c9545e775d9f0586e2b654ed538d9a85ee51 Mon Sep 17 00:00:00 2001 From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674> Date: 星期二, 20 六月 2017 09:57:31 +0800 Subject: [PATCH] --- VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DeviceMng.java | 8 VisitFace/DemoForBsk/app/src/main/AndroidManifest.xml | 2 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/UploadTest.java | 24 ++ VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/MainActivity.java | 4 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/SurveillanceFragment.java | 49 +++ VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/RegisterMng.java | 17 - VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/RtspFaceNative.java | 4 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java | 170 +++++++++------ VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java | 111 +++++---- VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/AppApi.java | 8 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/discern/query/item/SurveillanceQueryItem.java | 11 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/PostData.java | 104 +++++++++ VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_register_cell.xml | 4 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/adapter/SurveillanceFragment.java | 24 + VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/CaffeMobile.java | 11 + VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/Uploader.java | 68 ++++++ VisitFace/DemoForBsk/app/src/main/res/layout/activity_main.xml | 7 17 files changed, 459 insertions(+), 167 deletions(-) diff --git a/VisitFace/DemoForBsk/app/src/main/AndroidManifest.xml b/VisitFace/DemoForBsk/app/src/main/AndroidManifest.xml index ba14d18..cfa3196 100644 --- a/VisitFace/DemoForBsk/app/src/main/AndroidManifest.xml +++ b/VisitFace/DemoForBsk/app/src/main/AndroidManifest.xml @@ -17,6 +17,8 @@ <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> + <uses-permission android:name="android.permission.ACCESS_SUPERUSER" /> + <application android:name="cn.com.basic.face.base.BaseApplication" android:allowBackup="true" diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/adapter/SurveillanceFragment.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/adapter/SurveillanceFragment.java index de6f27f..403af37 100644 --- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/adapter/SurveillanceFragment.java +++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/adapter/SurveillanceFragment.java @@ -40,14 +40,18 @@ @Override public void onBindRecycleViewHolder(EasyRecyclerViewHolder viewHolder, int position) { - switch (((SurveillanceQueryItem)getList().get(position)).getRegisterOrCheckIn()){ - case Constant.Surveillance.VISIT_REGISTER_ITEM_TYPE: - RegisterCellViewFillData(viewHolder,position); - break; - case Constant.Surveillance.VISIT_CHECK_IN_ITEM_TYPE: - checkInCellViewFillData(viewHolder,position); - break; + Object obj = getList().get(position); + if (obj instanceof SurveillanceQueryItem) { + switch (((SurveillanceQueryItem)getList().get(position)).getRegisterOrCheckIn()){ + case Constant.Surveillance.VISIT_REGISTER_ITEM_TYPE: + RegisterCellViewFillData(viewHolder,position); + break; + case Constant.Surveillance.VISIT_CHECK_IN_ITEM_TYPE: + checkInCellViewFillData(viewHolder,position); + break; + } } + } @Override @@ -86,8 +90,10 @@ fragment_home_bottom_register_cell_photo.setImageURI(Uri.parse(AppApi.IMAGE_URL_BASE +item.getImagePath())); } else { if (item.getBitmap() != null) { - fragment_home_bottom_register_cell_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(item.getBitmap(), - (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp))); + //fragment_home_bottom_register_cell_photo.setImageResource(R.drawable.u45); + fragment_home_bottom_register_cell_photo.setImageBitmap(item.getBitmap()); +// fragment_home_bottom_register_cell_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(item.getBitmap(), +// (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp))); } else { fragment_home_bottom_register_cell_photo.setImageResource(R.drawable.u45); } diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/MainActivity.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/MainActivity.java index bb6340e..5e7e7c8 100644 --- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/MainActivity.java +++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/MainActivity.java @@ -13,6 +13,7 @@ import android.view.Window; import android.view.WindowManager; import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; @@ -72,7 +73,8 @@ mTabLayout.setTabMode(TabLayout.MODE_FIXED); for (int i = 0; i < mTabLayout.getTabCount(); i++) { TabLayout.Tab tab = mTabLayout.getTabAt(i); - tab.setCustomView(myFragmentPagerAdapter.getTabView(i)); + LinearLayout view = (LinearLayout)myFragmentPagerAdapter.getTabView(i); + tab.setCustomView(view); if (i == 0) { tab.getCustomView().setSelected(true); } diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/discern/query/item/SurveillanceQueryItem.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/discern/query/item/SurveillanceQueryItem.java index af6edbf..6c8d4be 100644 --- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/discern/query/item/SurveillanceQueryItem.java +++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/discern/query/item/SurveillanceQueryItem.java @@ -201,11 +201,12 @@ } public String getBase64Image() { - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); - bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream); - byte[] imageBytes = byteArrayOutputStream.toByteArray(); - String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT); - return encodedImage; +// ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); +// bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream); +// byte[] imageBytes = byteArrayOutputStream.toByteArray(); +// String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT); +// return encodedImage; + return ""; } public void setBase64Image(String base64Image) { diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java index 6caf525..946fbab 100644 --- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java +++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java @@ -6,6 +6,7 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; +import android.os.AsyncTask; import android.os.Environment; import android.provider.MediaStore; import android.util.Base64; @@ -18,6 +19,8 @@ import android.widget.TextView; import android.widget.Toast; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.bsk.zhangbo.demoforbsk.R; import cn.com.basic.face.adapter.SurveillanceFragment; @@ -26,6 +29,7 @@ import cn.com.basic.face.base.PictureTaker; import cn.com.basic.face.dialog.SurveillancePhotoDialog; import cn.com.basic.face.discern.common.CommonVariables; +import cn.com.basic.face.discern.common.ResultBean; import cn.com.basic.face.discern.entity.Register; import cn.com.basic.face.discern.query.item.CheckInQueryItem; import cn.com.basic.face.discern.query.item.SurveillanceQueryItem; @@ -40,6 +44,8 @@ import cn.com.basic.face.util.AppApi; import cn.com.basic.face.dialog.DateSelectDialog; import cn.com.basic.face.dialog.CountryDialog; +import cn.com.basic.face.util.PostData; +import cn.com.basic.face.util.Uploader; import cn.com.basic.face.widget.register.RegisterRightFieldLabelView; import cn.com.basic.face.widget.register.RegisterRightFieldTextView; import cn.com.basic.face.dialog.SelectDialog; @@ -134,16 +140,12 @@ @OnClick(R.id.fragment_register_save) public void fragment_register_save_click(View v) { + + if (!BaseApplication.deviceAvailable) { + return; + } + RequestParams params = new RequestParams(); - DisplayMetrics metrics = getActivity().getResources().getDisplayMetrics(); - - int h1 = fragment_register_surveillance_photo.getHeight(); - int h2 = fragment_register_upload_custom_photo.getHeight(); - int h3 = fragment_register_id_card_photo.getHeight(); - - DisplayMetrics displayMetrics = BaseApplication.getInstance().getResources().getDisplayMetrics(); - float dpHeight = displayMetrics.heightPixels / displayMetrics.density; - float dpWidth = displayMetrics.widthPixels / displayMetrics.density; String name = fragment_register_name.getValue(); if (name.trim().length() <= 0) { @@ -205,15 +207,18 @@ fragment_register_visitor_class.callOnClick(); return; } - params.addBodyParameter(Register.FieldNames.username, name); - params.addBodyParameter(Register.FieldNames.mobilePhone, phone); - params.addBodyParameter(Register.FieldNames.genderId, DictionaryMng.getInstance().getId(gender)); - params.addBodyParameter(Register.FieldNames.identityTypeId, DictionaryMng.getInstance().getId(id_class)); - params.addBodyParameter(Register.FieldNames.countryId, DictionaryMng.getInstance().getId(country)); - params.addBodyParameter(Register.FieldNames.visitorTypeId, DictionaryMng.getInstance().getId(visitor_class)); - params.addBodyParameter(Register.FieldNames.identifyNum, id_num); - params.addBodyParameter(Register.FieldNames.companyId, company); - params.addBodyParameter(Register.FieldNames.birthday, birthday); + final PostData pd = new PostData(); + + pd.addValue(Register.FieldNames.username, name); + pd.addValue(Register.FieldNames.mobilePhone, phone); + pd.addValue(Register.FieldNames.genderId, DictionaryMng.getInstance().getId(gender)); + pd.addValue(Register.FieldNames.identityTypeId, DictionaryMng.getInstance().getId(id_class)); + pd.addValue(Register.FieldNames.countryId, DictionaryMng.getInstance().getId(country)); + pd.addValue(Register.FieldNames.visitorTypeId, DictionaryMng.getInstance().getId(visitor_class)); + pd.addValue(Register.FieldNames.identifyNum, id_num); + pd.addValue(Register.FieldNames.companyId, company); + pd.addValue(Register.FieldNames.birthday, birthday); + if (surveillanceQueryItem_selectPhoto != null) { params.addBodyParameter("width", surveillanceQueryItem_selectPhoto.getWidth()); @@ -221,47 +226,63 @@ fragment_register_surveillance_photo_img = surveillanceQueryItem_selectPhoto.getBitmap(); NativeImg nativeImg = surveillanceQueryItem_selectPhoto.getNativeImg(); - String str = Base64.encodeToString(nativeImg.image, 0, nativeImg.size, Base64.DEFAULT); - - params.addBodyParameter("base64Image", str); - } - - if (surveillanceQueryItem_uploadPhoto != null) { -// params.addBodyParameter("width", surveillanceQueryItem_uploadPhoto.getWidth()); -// params.addBodyParameter("height", surveillanceQueryItem_uploadPhoto.getHeight()); -// fragment_register_surveillance_photo_img = surveillanceQueryItem_uploadPhoto.getBitmap(); -// -// NativeImg nativeImg = surveillanceQueryItem_uploadPhoto.getNativeImg(); -// String str = Base64.encodeToString(nativeImg.image, 0, nativeImg.size, Base64.DEFAULT); -// -// params.addBodyParameter("base64Image", str); + byte[] imageBytes = new byte[nativeImg.size]; + for (int i = 0; i < nativeImg.size; i++) { + imageBytes[i] = nativeImg.image[i]; + } + pd.addData("rawSurveillancePhoto", "application/octet-stream", imageBytes); } if (fragment_register_surveillance_photo_img != null) { ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); fragment_register_surveillance_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream); byte[] imageBytes = byteArrayOutputStream.toByteArray(); - String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT); - params.addBodyParameter(Register.FieldNames.surveillancePhoto, encodedImage); + pd.addData(Register.FieldNames.surveillancePhoto, "application/octet-stream", imageBytes); } if (fragment_register_upload_custom_photo_img != null) { ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); fragment_register_upload_custom_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream); byte[] imageBytes = byteArrayOutputStream.toByteArray(); - String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT); - params.addBodyParameter(Register.FieldNames.uploadCustomPhoto, encodedImage); + pd.addData(Register.FieldNames.uploadCustomPhoto, "application/octet-stream", imageBytes); } if (fragment_register_id_card_photo_img != null) { ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); fragment_register_id_card_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream); byte[] imageBytes = byteArrayOutputStream.toByteArray(); - String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT); - params.addBodyParameter(Register.FieldNames.idCardPhoto, encodedImage); + pd.addData(Register.FieldNames.idCardPhoto, "application/octet-stream", imageBytes); } - RegisterMng.getInstance().add(params); + + class ConnectionTask extends AsyncTask<String, Void, String> { + private String json = ""; + @Override + protected String doInBackground(String... urls) { + try { + Uploader uploader = new Uploader("", AppApi.BASE_URL + AppApi.REGISTER_ADD); + json = uploader.upload("", pd); + return json; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + @Override + protected void onPostExecute(String result) { + try { + Toast.makeText(BaseApplication.getInstance(),"娣诲姞鎴愬姛", Toast.LENGTH_SHORT).show(); + RegisterFragment.getInstance().resetForm(); + } catch(Exception e) { + e.printStackTrace(); + } + } + + } + ConnectionTask task = new ConnectionTask(); + String[] params1 = new String[2]; + task.execute(params1); } public void set_fragment_register_surveillance_photo(SurveillanceQueryItem item) { @@ -305,23 +326,16 @@ try { Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri); fragment_register_upload_custom_photo.setImageBitmap(bitmap); - //fragment_register_upload_custom_photo_img = bitmap; fragment_register_upload_custom_photo_placeholder_image.setVisibility(View.INVISIBLE); fragment_register_upload_custom_photo_placeholder_text_view.setVisibility(View.INVISIBLE); List<SurveillanceQueryItem> bitmapList = new ArrayList<>(); SurveillanceQueryItem item = new SurveillanceQueryItem(); -// item.setBitmap(bitmap); item.setWidth(bitmap.getWidth()+""); item.setHeight(bitmap.getHeight()+""); item.setLocalUri(uri); -// ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); -// bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream); -// byte[] imageBytes = byteArrayOutputStream.toByteArray(); -// String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT); -// item.setBase64Image(encodedImage); setSurveillanceQueryItem_selectPhoto(item); bitmapList.add(item); bitmapList.add(item); @@ -505,11 +519,6 @@ @OnClick(R.id.fragment_register_id_card_photo) public void fragment_register_id_card_photo_click(View view) { -// Intent takePicture = new Intent(MainActivity.getInstance(), PictureTaker.class); -// startActivityForResult(takePicture, fragment_register_id_card_photo_); -// Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); -// startActivityForResult(takePicture, fragment_register_id_card_photo_); - Intent intent = new Intent(); intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE); idCardImageCaptureFile = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis()+".jpg"); 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 e103581..700c907 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 @@ -4,8 +4,10 @@ import android.net.wifi.WifiManager; import android.os.Build; import android.os.Bundle; +import android.os.Environment; import android.os.SystemClock; import android.text.format.Formatter; +import android.util.Log; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.View; @@ -32,12 +34,13 @@ import com.lidroid.xutils.view.annotation.event.OnClick; import java.io.BufferedReader; +import java.io.DataOutputStream; import java.io.File; -import java.io.FileInputStream; import java.io.FileReader; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.text.SimpleDateFormat; +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.SocketException; +import java.util.*; public class SurveillanceFragment extends BaseFragment { @@ -90,13 +93,41 @@ System.loadLibrary("protoc"); System.loadLibrary("rtspface"); RtspFaceNative.init(); -// RtspFaceNative.setLocalIP("192.168.1.10"); -// RtspFaceNative.setLocalIP("192.168.1.106");//鑷繁鎵嬫満ip -// RtspFaceNative.setLocalIP("192.168.1.203"); -// RtspFaceNative.setLocalIP("192.168.1.205"); WifiManager wm = (WifiManager) MainActivity.getInstance().getSystemService(Context.WIFI_SERVICE); String ip = Formatter.formatIpAddress(wm.getConnectionInfo().getIpAddress()); - RtspFaceNative.setLocalIP(ip); + String ipAddress = null; + try { + for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { + NetworkInterface intf = en.nextElement(); + for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) { + InetAddress inetAddress = enumIpAddr.nextElement(); + if (!inetAddress.isLoopbackAddress()) { + ipAddress = inetAddress.getHostAddress().toString(); + } + } + } + } catch (SocketException ex) {} + + try{ + + Process su = Runtime.getRuntime().exec("su"); + DataOutputStream outputStream = new DataOutputStream(su.getOutputStream()); + + //outputStream.writeBytes("busybox ifconfig wlan0 down\n"); + //outputStream.flush(); + //Thread.sleep(5000); + outputStream.writeBytes("busybox ifconfig wlan0 hw ether f4:8b:32:62:4f:89\n"); + outputStream.flush(); + + outputStream.writeBytes("exit\n"); + outputStream.flush(); + su.waitFor(); + }catch(Exception e){ + e.printStackTrace(); + } + +// outputStream.writeBytes("busybox ifconfig wlan0 hw ether 00:e0:2c:31:1a:ba\n"); + RtspFaceNative.setLocalIP("192.168.1.53"); } } 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 83d99d9..196344b 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 @@ -62,6 +62,7 @@ // return; // } RequestParams params = new RequestParams(AppApi.BASE_URL + AppApi.Query.DEVICE_QUERY); + params.addBodyParameter(Device.FieldNames.sn, authorationId); params.addBodyParameter(Device.FieldNames.type, CommonVariables.DeviceType.ANDROID_DEVICE); x.http().post(params, new BaseCommonCallBack() { @@ -188,7 +189,9 @@ // port = camera1.getString("fragment_device_right_camera1_port", ""); // } - return "rtsp://"+username+":"+password+"@"+ip+":"+port+"/h264/ch1/sub/av_stream"; +// return "rtsp://"+username+":"+password+"@"+ip+":"+port+"/h264/ch1/sub/av_stream"; + return "rtsp://admin:a1234567@192.168.1.68:554/h264/ch1/sub/av_stream"; + } public String getCamera2Address() { @@ -211,7 +214,8 @@ // port = camera1.getString("fragment_device_right_camera1_port", ""); // } - return "rtsp://"+username+":"+password+"@"+ip+":"+port+"/h264/ch1/sub/av_stream"; + //return "rtsp://"+username+":"+password+"@"+ip+":"+port+"/h264/ch1/sub/av_stream"; + return "rtsp://Admin:1234@192.168.1.22/h264_2"; } } diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/RegisterMng.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/RegisterMng.java index b9ef5fa..01d7f4b 100644 --- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/RegisterMng.java +++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/RegisterMng.java @@ -23,23 +23,6 @@ } public void add(RequestParams params) { - if (!BaseApplication.deviceAvailable) { - return; - } - try { - params.setUri(AppApi.BASE_URL +AppApi.REGISTER_ADD); - x.http().post(params, new BaseCommonCallBack() { - @Override - public void success() { - Toast.makeText(BaseApplication.getInstance(),"娣诲姞鎴愬姛", Toast.LENGTH_SHORT).show(); - RegisterFragment.getInstance().resetForm(); - } - }); - - }catch(Exception e) { - e.printStackTrace(); - - } } diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java index dfed82e..d4af223 100644 --- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java +++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java @@ -1,10 +1,15 @@ package cn.com.basic.face.service; +import android.os.AsyncTask; import android.util.Base64; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import org.xutils.http.RequestParams; import org.xutils.x; +import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.HashSet; @@ -15,10 +20,13 @@ import cn.com.basic.face.base.MainActivity; import cn.com.basic.face.discern.common.BaseCommonCallBack; import cn.com.basic.face.discern.common.CommonVariables; +import cn.com.basic.face.discern.common.ResultBean; import cn.com.basic.face.discern.query.item.SurveillanceQueryItem; import cn.com.basic.face.fragment.SurveillanceFragment; import cn.com.basic.face.util.AppApi; import cn.com.basic.face.util.Constant; +import cn.com.basic.face.util.PostData; +import cn.com.basic.face.util.Uploader; public class SurveillanceMng { @@ -58,8 +66,8 @@ if (item.getRegisterOrCheckIn() == CommonVariables.Surveillance.VISIT_REGISTER_ITEM_TYPE) { Date now = new Date(); Date createTime = item.getCreateTime(); - long secs = (now.getTime() - createTime.getTime()) / 1000 ; - if (secs*1.0 / 60*5 >= 1) { + double minutes = (now.getTime() - createTime.getTime())*1.0 / 1000 / 60; + if (minutes >= 5) { continue; } newPrevList.add(item); @@ -68,75 +76,105 @@ return newPrevList; } - public void addBitmap(final List<SurveillanceQueryItem> bitmapList, byte[] byteArray, int len, String cameraInOrOut) { + public void addBitmap(final List<SurveillanceQueryItem> bitmapList, final byte[] byteArray, int len, final String cameraInOrOut) { if (!BaseApplication.deviceAvailable) { return; } - RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.SURVEILLANCE_UPLOAD); - params.addBodyParameter("base64Photo", Base64.encodeToString(byteArray, 0, len, Base64.DEFAULT)); - params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); - params.addBodyParameter("deviceId", BaseApplication.getInstance().getAndroidDevice().getDeviceId()); - params.addBodyParameter("InOrOutCamera", cameraInOrOut+""); - x.http().post(params, new BaseCommonCallBack() { - public void success() { - List<SurveillanceQueryItem> items = getList(SurveillanceQueryItem.class); - List prevVisitorList = SurveillanceFragment.getInstance().get_fragment_supervisory_bottom_visitor_list_view().getPrevList(); - List prevAttendanceList = SurveillanceFragment.getInstance().get_fragment_supervisory_bottom_attendance_list_view().getPrevList(); - - List newVisitorList = new ArrayList(); - - List newAttendanceList = new ArrayList(); - - for (int i = 0; items != null && i < items.size(); i++) { - SurveillanceQueryItem item = items.get(i); - int type = item.getRegisterOrCheckIn(); - if (type == CommonVariables.Surveillance.VISIT_REGISTER_ITEM_TYPE - || type == CommonVariables.Surveillance.VISIT_CHECK_IN_ITEM_TYPE - ) { - //item.setRegisterOrCheckIn(CommonVariables.Surveillance.VISIT_CHECK_IN_ITEM_TYPE); - if (prevVisitorList.size() > 3 ) { - - } - item.setCreateTime(new Date()); - newVisitorList.add(0, item); - if (i < bitmapList.size()) { - SurveillanceQueryItem surveillanceQueryItem = bitmapList.get(i); - item.setBitmap(surveillanceQueryItem.getBitmap()); - item.setBase64Image(surveillanceQueryItem.getBase64Image()); - item.setNativeImg(surveillanceQueryItem.getNativeImg()); - item.setWidth(surveillanceQueryItem.getWidth()); - item.setHeight(surveillanceQueryItem.getHeight()); - } - } - if (type == CommonVariables.Surveillance.VISIT_ATTENDANCE_ITEM_TYPE) { - newAttendanceList.add(item); - if (i < bitmapList.size()) { - SurveillanceQueryItem surveillanceQueryItem = bitmapList.get(i); - item.setBitmap(surveillanceQueryItem.getBitmap()); - item.setBase64Image(surveillanceQueryItem.getBase64Image()); - item.setNativeImg(surveillanceQueryItem.getNativeImg()); - item.setWidth(surveillanceQueryItem.getWidth()); - item.setHeight(surveillanceQueryItem.getHeight()); - } - } + class ConnectionTask extends AsyncTask<String, Void, String> { + private String json = ""; + @Override + protected String doInBackground(String... urls) { + try { + PostData pd = new PostData(); + pd.addValue("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); + pd.addValue("InOrOutCamera", cameraInOrOut + ""); + pd.addValue("deviceId", BaseApplication.getInstance().getAndroidDevice().getDeviceId()); + pd.addData("surveillancePhoto", "application/octet-stream", byteArray); + Uploader uploader = new Uploader("", AppApi.BASE_URL + AppApi.SURVEILLANCE_UPLOAD); + json = uploader.upload("face/Surveillance/o_upload.do", pd); + return json; + } catch (Exception e) { + e.printStackTrace(); } - - if (newVisitorList.size() > 0) { - prevVisitorList.addAll(0, newVisitorList); - registerTopAndCheckInBottom(prevVisitorList); - SurveillanceFragment.getInstance().get_fragment_supervisory_bottom_visitor_list_view().show(prevVisitorList); - } - - if (newAttendanceList.size() > 0) { - prevAttendanceList.addAll(0, newAttendanceList); - if (prevAttendanceList.size() > 20) { - prevAttendanceList = prevAttendanceList.subList(0, 20); - } - SurveillanceFragment.getInstance().get_fragment_supervisory_bottom_attendance_list_view().show(prevAttendanceList); - } - + return null; } - }); + + @Override + protected void onPostExecute(String result) { + try { + + System.out.println("json="+result); + ResultBean resultBean = JSON.parseObject(result, ResultBean.class); + if (resultBean == null) { + System.out.println("resultBean="+resultBean); + return; + } + Object data = resultBean.getData(); + if (data instanceof JSONArray) { + JSONArray jsonArray = (JSONArray) data; + List<SurveillanceQueryItem> items = JSON.parseArray(jsonArray.toJSONString(), SurveillanceQueryItem.class); + + List prevVisitorList = SurveillanceFragment.getInstance().get_fragment_supervisory_bottom_visitor_list_view().getPrevList(); + List prevAttendanceList = SurveillanceFragment.getInstance().get_fragment_supervisory_bottom_attendance_list_view().getPrevList(); + + List newVisitorList = new ArrayList(); + + List newAttendanceList = new ArrayList(); + + for (int i = 0; items != null && i < items.size(); i++) { + SurveillanceQueryItem item = items.get(i); + int type = item.getRegisterOrCheckIn(); + if (type == CommonVariables.Surveillance.VISIT_REGISTER_ITEM_TYPE + || type == CommonVariables.Surveillance.VISIT_CHECK_IN_ITEM_TYPE + ) { + item.setCreateTime(new Date()); + newVisitorList.add(0, item); + if (i < bitmapList.size()) { + SurveillanceQueryItem surveillanceQueryItem = bitmapList.get(i); + item.setBitmap(surveillanceQueryItem.getBitmap()); + item.setBase64Image(surveillanceQueryItem.getBase64Image()); + item.setNativeImg(surveillanceQueryItem.getNativeImg()); + item.setWidth(surveillanceQueryItem.getWidth()); + item.setHeight(surveillanceQueryItem.getHeight()); + } + } + if (type == CommonVariables.Surveillance.VISIT_ATTENDANCE_ITEM_TYPE) { + newAttendanceList.add(item); + if (i < bitmapList.size()) { + SurveillanceQueryItem surveillanceQueryItem = bitmapList.get(i); + item.setBitmap(surveillanceQueryItem.getBitmap()); + item.setBase64Image(surveillanceQueryItem.getBase64Image()); + item.setNativeImg(surveillanceQueryItem.getNativeImg()); + item.setWidth(surveillanceQueryItem.getWidth()); + item.setHeight(surveillanceQueryItem.getHeight()); + } + } + System.out.println("inOutCamera="+item.getInOrOutCamera()); + } + + if (newVisitorList.size() > 0) { + prevVisitorList.addAll(0, newVisitorList); + registerTopAndCheckInBottom(prevVisitorList); + SurveillanceFragment.getInstance().get_fragment_supervisory_bottom_visitor_list_view().show(prevVisitorList); + } + + if (newAttendanceList.size() > 0) { + prevAttendanceList.addAll(0, newAttendanceList); + if (prevAttendanceList.size() > 20) { + prevAttendanceList = prevAttendanceList.subList(0, 20); + } + SurveillanceFragment.getInstance().get_fragment_supervisory_bottom_attendance_list_view().show(prevAttendanceList); + } + } + } catch(Exception e) { + e.printStackTrace(); + } + } + + } + ConnectionTask task = new ConnectionTask(); + String[] params = new String[2]; + task.execute(params); } public List getSurveillancePhotoList(long selectedId) { 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 e667cae..00b0e18 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 @@ -3,8 +3,12 @@ public class AppApi { // public final static String IMAGE_URL_BASE = "http://192.168.1.141/AI/img/"; // public final static String BASE_URL = "http://192.168.1.141/AI/"; - public final static String IMAGE_URL_BASE = "http://192.168.1.137/face/img/"; - public final static String BASE_URL = "http://192.168.1.137/face/"; + //public final static String IMAGE_URL_BASE = "http://192.168.1.137:8333/face/img/"; + //public final static String BASE_URL = "http://192.168.1.137:8333/face/"; + + public final static String IMAGE_URL_BASE = "http://192.168.1.137:8888/"; + public final static String BASE_URL = "http://192.168.1.51/face/"; +// public final static String BASE_URL = "http://192.168.1.137:8333/face/"; public static final String REGISTER_ADD = "Register/o_add.do"; diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/CaffeMobile.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/CaffeMobile.java new file mode 100644 index 0000000..125586d --- /dev/null +++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/CaffeMobile.java @@ -0,0 +1,11 @@ +package cn.com.basic.face.util; + +/** + * Created by xiuxi on 2017/6/15. + */ + +public class CaffeMobile { + + public static native double hello(String model_file, String trained_file); + +} diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/PostData.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/PostData.java new file mode 100644 index 0000000..c7708fc --- /dev/null +++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/PostData.java @@ -0,0 +1,104 @@ +package cn.com.basic.face.util; + +import java.io.IOException; +import java.io.OutputStream; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.List; + +public class PostData { + + class ByteData { + byte[] data; + String header; + String name; + + ByteData(String name, String contentType, byte[] data) { + this.name = name; + this.data = data; + try { + header = "--" + BOUNDARY + CRLF + "Content-Disposition: form-data; name=\"surveillancePhoto\"; filename=\"" + URLEncoder.encode(name, encoding) + "\";" + CRLF + + "Content-Type: " + contentType + CRLF + CRLF; + } catch(UnsupportedEncodingException e) { + e.printStackTrace(); + } + } + + public int getSize() { + return header.length() + data.length + CRLF.length(); + } + + + public void write(OutputStream out) throws IOException { + out.write(header.getBytes()); + out.write(data); + out.write(CRLF.getBytes()); + } + } + + private static final String TAG = PostData.class.getSimpleName(); + static final String BOUNDARY = "3C3F786D6C2076657273696F6E2E302220656E636F64696E673D662D38223F3E0A3C6D616E6966"; + static final String CRLF = "\r\n"; + private final String encoding; + private StringBuilder sb; + private String trailer; + private List<ByteData> dataList = new ArrayList<ByteData>(); + + + public PostData() { + this("UTF-8"); + } + + public PostData(String encoding) { + this.encoding = encoding; + sb = new StringBuilder(); + trailer = "--" + BOUNDARY + "--" + CRLF; + } + + public String getContentType() { + return "multipart/form-data; boundary=" + BOUNDARY; + } + + public void addValue(String name, int value) { + addValue(name, Integer.toString(value)); + } + + public void addValue(String name, String value) { + sb.append("--" + BOUNDARY + CRLF); + sb.append("Content-Disposition: form-data; name=\""); + try { + sb.append(URLEncoder.encode(name, encoding)); + sb.append('"'); + sb.append(CRLF + CRLF); + sb.append(value); + sb.append(CRLF); + } catch(UnsupportedEncodingException e) { + e.printStackTrace(); + } + } + + public void addData(String name, String contentType, byte[] data) { + dataList.add(new ByteData(name, contentType, data)); + } + + + public long getLength() { + long length = sb.toString().getBytes().length; + length += trailer.length(); + for(ByteData byteData : dataList) + length += byteData.getSize(); + return length; + } + + public String toString() { + return sb.toString(); + } + + public void write(OutputStream out) throws IOException { + out.write(sb.toString().getBytes()); + for(ByteData byteData : dataList) + byteData.write(out); + out.write(trailer.getBytes()); + } +} \ No newline at end of file diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/RtspFaceNative.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/RtspFaceNative.java index 8604f22..6326e94 100644 --- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/RtspFaceNative.java +++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/RtspFaceNative.java @@ -56,6 +56,7 @@ public static void faceCallBack(int cameraIdx, int count) { + System.out.println("cameraIdex="+cameraIdx+", count="+count); Log.i("@@@", "RtspFaceNative.faceCallBack, cameraIdx=" + cameraIdx + ", count=" + count); // something else @@ -117,8 +118,9 @@ SurveillanceQueryItem surveillanceQueryItem = new SurveillanceQueryItem(); int offset = 0; int size = item.size; - Bitmap bitmap = Bitmap.createBitmap(item.width,item.height, Bitmap.Config.ARGB_8888); + Bitmap bitmap = Bitmap.createBitmap(item.width,item.height, Bitmap.Config.RGB_565); ByteBuffer byteBuffer = ByteBuffer.wrap(item.image, offset, size); + //byteBuffer.rewind(); bitmap.copyPixelsFromBuffer(byteBuffer); // String str = Base64.encodeToString(item.image, offset, size, Base64.DEFAULT); // System.out.println(str.length()); diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/UploadTest.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/UploadTest.java new file mode 100644 index 0000000..9961e19 --- /dev/null +++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/UploadTest.java @@ -0,0 +1,24 @@ +package cn.com.basic.face.util; + + +import java.io.FileOutputStream; +import java.io.IOException; + +public class UploadTest { + + private static byte[] data = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 9, 8, 7, 6, 5 , 4, 3, 2, 1}; + + static public void main(String args[]) { + + PostData pd = new PostData(); + pd.addValue("base64Photo", "joe"); + pd.addValue("name", "Joe Smith"); + pd.addData("surveillancePhoto", "application/octet-stream", data); + Uploader uploader = new Uploader("http", "localhost"); + try { + uploader.upload("face/Surveillance/o_upload.do", pd); + } catch(IOException e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/Uploader.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/Uploader.java new file mode 100644 index 0000000..b8fe1cc --- /dev/null +++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/Uploader.java @@ -0,0 +1,68 @@ +package cn.com.basic.face.util; + + +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URL; + +public class Uploader { + + private static final int CONNECTION_TIMEOUT = 10 * 1000; + private static final int READ_TIMEOUT = 10 * 1000; + final private String protocol; + final private String server; + + public Uploader(String protocol, String server) { + this.protocol = protocol; + this.server = server; + } + + protected HttpURLConnection getBaseConnection(String endpoint) throws IOException { + HttpURLConnection connection; + URL url; + + try { + url = new URL(server); + connection = (HttpURLConnection)url.openConnection(); + } catch(MalformedURLException e) { + throw new IOException("Malformed URL"); + } + connection.setDoInput(true); + connection.setConnectTimeout(CONNECTION_TIMEOUT); + connection.setReadTimeout(READ_TIMEOUT); + return connection; + } + + public String upload(String endpoint, PostData postData) throws IOException { + HttpURLConnection connection = null; + + connection = getBaseConnection(endpoint); + connection.setDoOutput(true); + connection.setInstanceFollowRedirects(false); + connection.setRequestMethod("POST"); + connection.setRequestProperty("Charset", "utf-8"); + connection.setRequestProperty("Content-Type", postData.getContentType()); + connection.setRequestProperty("Accept", "text/json"); + OutputStream out = new BufferedOutputStream(connection.getOutputStream(), 8192); + postData.write(out); + out.flush(); + BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream())); + String line = br.readLine(); + String json = ""; + while (line != null) { + json += line; + line = br.readLine(); + } + System.out.println(json); + int response = connection.getResponseCode(); + connection.disconnect(); +// return response; + return json; + } +} \ No newline at end of file diff --git a/VisitFace/DemoForBsk/app/src/main/res/layout/activity_main.xml b/VisitFace/DemoForBsk/app/src/main/res/layout/activity_main.xml index 04d3631..ac32a16 100644 --- a/VisitFace/DemoForBsk/app/src/main/res/layout/activity_main.xml +++ b/VisitFace/DemoForBsk/app/src/main/res/layout/activity_main.xml @@ -8,7 +8,6 @@ android:background="@color/colorBackground" tools:context="com.bsk.zhangbo.demoforbsk.cn.com.basic.face.android.ui.MainActivity"> - <!--app:tabMaxWidth="@dimen/view_size_58" 璁剧疆tab鐨勫ぇ灏�--> <android.support.design.widget.TabLayout android:id="@+id/tab_layout" @@ -19,7 +18,11 @@ app:tabIndicatorHeight="@dimen/view_size_0" app:tabSelectedTextColor="#cccccc" app:tabTextColor="@android:color/white" - app:tabTextAppearance="@style/MyTabLayoutTextAppearance" > + app:tabTextAppearance="@style/MyTabLayoutTextAppearance" + app:tabMaxWidth="0dp" + app:tabGravity="fill" + app:tabMode="fixed" + > </android.support.design.widget.TabLayout> <android.support.v4.view.ViewPager android:id="@+id/viewpager" diff --git a/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_register_cell.xml b/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_register_cell.xml index 3a946b4..a5579fb 100644 --- a/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_register_cell.xml +++ b/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_register_cell.xml @@ -21,8 +21,8 @@ android:layout_height="wrap_content" android:background="@drawable/rounded_textview" android:gravity="center" - android:textSize="@dimen/w16dp" - android:text="娉ㄥ唽" + android:textSize="@dimen/w12dp" + android:text="鏈敞鍐�" android:layout_marginBottom="@dimen/h20dp" android:layout_marginRight="@dimen/w10dp" android:layout_alignParentBottom="true" -- Gitblit v1.8.0