xuxiuxi
2017-07-12 8eba4786474eb6ec2861f37bc628d8d5f0aa0d96
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/MainActivity.java
@@ -1,23 +1,25 @@
package cn.com.basic.face.base;
import android.Manifest;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.drawable.ColorDrawable;
import android.hardware.Camera;
import android.os.Handler;
import android.support.design.widget.TabLayout;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.content.ContextCompat;
import android.support.v4.view.ViewPager;
import android.os.Bundle;
import android.view.LayoutInflater;
@@ -26,7 +28,6 @@
import android.view.SurfaceView;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.EditText;
import android.widget.ImageView;
@@ -39,6 +40,7 @@
import cn.com.basic.face.discern.common.CommonVariables;
import cn.com.basic.face.discern.query.item.SurveillanceQueryItem;
import cn.com.basic.face.fragment.AttenderRegisterFragment;
import cn.com.basic.face.fragment.SurveillanceFragment;
import cn.com.basic.face.service.SurveillanceMng;
import cn.com.basic.face.util.FileUtil;
@@ -48,13 +50,12 @@
import cn.com.basic.face.fragment.CheckInFragment;
import cn.com.basic.face.fragment.DeviceFragment;
import cn.com.basic.face.fragment.PhoneCallFragment;
import cn.com.basic.face.fragment.RegisterFragment;
import cn.com.basic.face.fragment.VisitorRegisterFragment;
import cn.com.basic.face.fragment.VisitFragment;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -91,7 +92,8 @@
        int[] tabIcons = TabNameUtil.tabIcons;
        MyFragmentPagerAdapter myFragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager(),MainActivity.this);
        myFragmentPagerAdapter.addFragment(SurveillanceFragment.getInstance(), tabNamesList.get(0),tabIcons[0]);
        myFragmentPagerAdapter.addFragment(RegisterFragment.getInstance(), tabNamesList.get(1),tabIcons[1]);
//        myFragmentPagerAdapter.addFragment(VisitorRegisterFragment.getInstance(), tabNamesList.get(1),tabIcons[1]);
        myFragmentPagerAdapter.addFragment(AttenderRegisterFragment.getInstance(), tabNamesList.get(1),tabIcons[1]);
        myFragmentPagerAdapter.addFragment(CheckInFragment.getInstance(), tabNamesList.get(2),tabIcons[2]);
        myFragmentPagerAdapter.addFragment(PhoneCallFragment.getInstance(), tabNamesList.get(3),tabIcons[3]);
        myFragmentPagerAdapter.addFragment(VisitFragment.getInstance(), tabNamesList.get(4),tabIcons[4]);
@@ -109,9 +111,10 @@
                tab.getCustomView().setSelected(true);
            }
        }
        if (CommonVariables.ID_CARD) {
        myThread = new MyThread();
        myThread.start();
        }
    }
    public static MainActivity getInstance() {
@@ -274,6 +277,7 @@
            } else {
                FSDK.Initialize();
                getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
                mDraw = new ProcessImageAndDrawResults(this);
                mPreview = new Preview(this, mDraw);
                mDraw.mTracker = new FSDK.HTracker();
@@ -285,6 +289,16 @@
                    }
                }
                resetTrackerParameters();
                //setContentView(mPreview); //creates MainActivity contents
                //addContentView(mDraw, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
                // Menu
//                LayoutInflater inflater = (LayoutInflater)this.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
//                View buttons = inflater.inflate(R.layout.bottom_menu, null );
//                buttons.findViewById(R.id.helpButton).setOnClickListener(this);
//                buttons.findViewById(R.id.clearButton).setOnClickListener(this);
//                addContentView(buttons, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
            }
        }
    }
@@ -499,12 +513,24 @@
        } else {
            FSDK.CopyImage(Image, RotatedImage);
        }
//        FSDK.TFacePosition fp11 = new FSDK.TFacePosition();
//        FSDK.DetectFace(RotatedImage, fp11);
        String surveillancePhotoName11 = "/storage/sdcard1/"+System.currentTimeMillis()+".jpg";
        FSDK.SaveImageToFile(Image, surveillancePhotoName11);
        FSDK.FreeImage(Image);
        long IDs[] = new long[MAX_FACES];
        long face_count[] = new long[1];
        FSDK.FeedFrame(mTracker, 0, RotatedImage, face_count, IDs);
        System.out.println("face_count="+face_count[0]);
        faceLock.lock();
@@ -714,12 +740,17 @@
                frontCameraFound = true;
            }
        }
        //If authorisation not granted for camera
        if (ContextCompat.checkSelfPermission(MainActivity.getInstance(), Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)
            //ask for authorisation
            ActivityCompat.requestPermissions(MainActivity.getInstance(), new String[]{Manifest.permission.CAMERA}, 50);
        if (frontCameraFound) {
            mCamera = Camera.open(cameraId);
        } else {
            mCamera = Camera.open();
        }
        try {
            mCamera.setPreviewDisplay(holder);
@@ -785,6 +816,7 @@
        List<Camera.Size> supportedSizes = parameters.getSupportedPreviewSizes();
        int width = 0;
        int height = 0;
        System.out.println("surfaceChanged");
        for (Camera.Size s: supportedSizes) {
            if ((width - 640)*(width - 640) + (height - 480)*(height - 480) >
                    (s.width - 640)*(s.width - 640) + (s.height - 480)*(s.height - 480)) {