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