a
554325746@qq.com
2019-12-25 7340eb0b160eacbbd0f3c2289e3ac6150da235f3
a
36个文件已添加
20个文件已修改
454 ■■■■■ 已修改文件
.idea/modules.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/libs/PosUtil.jar 补丁 | 查看 | 原始文档 | blame | 历史
app/libs/SerialDeviceLib-release.aar 补丁 | 查看 | 原始文档 | blame | 历史
app/libs/SmartCardLib.jar 补丁 | 查看 | 原始文档 | blame | 历史
app/libs/androidSync.aar 补丁 | 查看 | 原始文档 | blame | 历史
app/libs/core-3.1.0.jar 补丁 | 查看 | 原始文档 | blame | 历史
app/libs/telpo_api.jar 补丁 | 查看 | 原始文档 | blame | 历史
app/libs/zkandroidcore.jar 补丁 | 查看 | 原始文档 | blame | 历史
app/libs/zkandroidnidfpsensor.jar 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/cpp/FaceDetectHelper.cpp 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/cpp/LogUtil.cpp 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/cpp/native-lib.cpp 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/amitshekhar/DebugDB.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/amitshekhar/server/ClientServer.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/amitshekhar/server/RequestHandler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/amitshekhar/utils/Utils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/basic/security/base/BaseApplication.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/basic/security/fragment/AdminPasswordLoginFragment.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/basic/security/manager/BaseManager.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/basic/security/manager/IdCardManager.java 233 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/basic/security/receiver/WebRtcBroadCastReceiver.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/basic/security/utils/Constants.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/basic/security/utils/FaceId.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/basic/security/utils/socket/RelayServerUtil.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/basic/security/utils/socket/indoor/IndoorGuestSocketClient.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/basic/security/utils/socket/outdoor/OutdoorGuestSocketServer.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/java/lang/System1.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/java/lang/System2.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libAlUSB.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libIDFpr.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libIDFpr2.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libcard_reader.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libcollect.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libdecode.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libfingerprint.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libidcard.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libidcard900.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libidfprcap.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libled.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libledpower.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libmoneybox.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libpicc.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libposutil.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libserial_port.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libsystem_util.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libtelpo_msr.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libtelpo_nfc.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libtelpo_printer.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libtelpo_printer5880.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libtelpo_printer_48.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libtelpo_printer_581.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libtelpo_serial.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libusb_util.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libwlt2bmp.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libzksensorcore.so 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/jniLibs/armeabi-v7a/libzkwltdecode.so 补丁 | 查看 | 原始文档 | blame | 历史
.idea/modules.xml
@@ -3,7 +3,7 @@
  <component name="ProjectModuleManager">
    <modules>
      <module fileurl="file://$PROJECT_DIR$/IDCardReader/IDCardReader.iml" filepath="$PROJECT_DIR$/IDCardReader/IDCardReader.iml" />
      <module fileurl="file://$PROJECT_DIR$/Security_yuyin_indoor_tps650.iml" filepath="$PROJECT_DIR$/Security_yuyin_indoor_tps650.iml" />
      <module fileurl="file://$PROJECT_DIR$/Security_yuyin_indoor_tps650_basic_git.iml" filepath="$PROJECT_DIR$/Security_yuyin_indoor_tps650_basic_git.iml" />
      <module fileurl="file://$PROJECT_DIR$/android-file-chooser/android-file-chooser.iml" filepath="$PROJECT_DIR$/android-file-chooser/android-file-chooser.iml" />
      <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
      <module fileurl="file://$PROJECT_DIR$/basic_common/basic_common.iml" filepath="$PROJECT_DIR$/basic_common/basic_common.iml" />
app/libs/PosUtil.jar
Binary files differ
app/libs/SerialDeviceLib-release.aar
Binary files differ
app/libs/SmartCardLib.jar
Binary files differ
app/libs/androidSync.aar
Binary files differ
app/libs/core-3.1.0.jar
Binary files differ
app/libs/telpo_api.jar
Binary files differ
app/libs/zkandroidcore.jar
Binary files differ
app/libs/zkandroidnidfpsensor.jar
Binary files differ
app/src/main/cpp/FaceDetectHelper.cpp
@@ -119,11 +119,13 @@
double prevExtractFeatureTime=0;
#include <pthread.h>
pthread_mutex_t mutex1;
#include <mutex>
std::mutex myMutex;
string
FaceDetectHelper::detectRealFace(const char* modelPath, const char *rgbFileName, const char *grayFileName, int width,
                                 int height, const char* baseFeatureName, int shouldExtractFeature, bool useGrayCamera, int detectFaceCount) {
     std::lock_guard<std::mutex> guard(myMutex);
    //useGrayCamera = false;
    int featureCount = 0;
    string faces = "";
app/src/main/cpp/LogUtil.cpp
@@ -7,5 +7,5 @@
using namespace std;
void LogUtil::log(string message) {
    cout << message << endl;
    //cout << message << endl;
}
app/src/main/cpp/native-lib.cpp
@@ -379,6 +379,8 @@
unordered_map<string, shared_ptr<vector<unsigned char>>> featureMap;
list<pair<string, shared_ptr<vector<unsigned char>>>> featureList;
unordered_map<string, shared_ptr<vector<unsigned char>>> allFeatureMap;
extern "C" JNIEXPORT void
JNICALL
Java_com_basic_security_utils_FaceId_addFeatureToDb(
@@ -417,6 +419,47 @@
        LogUtil::log(e.what());
    }
}
extern "C" JNIEXPORT void
JNICALL
Java_com_basic_security_utils_FaceId_addFeatureToAllDb(
        JNIEnv *env, jobject, jstring id, jbyteArray featureBuffer) {
    try {
        if (featureBuffer == nullptr) {
            return;
        }
        if (allFeatureMap.size() < 100 || 1 == 1) {
            if (!useFeatureList) {
                unsigned int max_size = allFeatureMap.max_size();
                {
                    int len = env->GetArrayLength(featureBuffer);
                    shared_ptr<vector<unsigned char>> feature = make_shared<vector<unsigned char>>(len);
                    env->GetByteArrayRegion(featureBuffer, 0, len,
                                            reinterpret_cast<jbyte *>(feature.get()->data()));
                    const char *sid = env->GetStringUTFChars(id, 0);
                    allFeatureMap[sid] = feature;
                }
            }
            /*if (useFeatureList) {
                unsigned int max_size = allFeatureMap.max_size();
                {
                    int len = env->GetArrayLength(featureBuffer);
                    shared_ptr<vector<unsigned char>> feature = make_shared<vector<unsigned char>>(len);
                    env->GetByteArrayRegion(featureBuffer, 0, len,
                                            reinterpret_cast<jbyte *>(feature.get()->data()));
                    const char *sid = env->GetStringUTFChars(id, 0);
                    featureListMutex.lock();
                    featureList.push_back({sid, feature});
                    featureListMutex.unlock();
                }
            }*/
        }
    } catch (exception &e) {
        LogUtil::log(e.what());
    }
}
unordered_map<string, shared_ptr<vector<unsigned char>>> tempFeatureMap;
list<pair<string, shared_ptr<vector<unsigned char>>>> tempFeatureList;
@@ -541,6 +584,38 @@
}
extern "C" JNIEXPORT jstring
JNICALL
Java_com_basic_security_utils_FaceId_compareFeatureInAllDb(
        JNIEnv *env, jobject, jbyteArray featureBuffer, jint minScore) {
    float score = 0;
    string result = ",0";
    try {
        env->GetByteArrayRegion(featureBuffer, 0, 2560, reinterpret_cast<jbyte *>(buf));
        if (!useFeatureList) {
            for (auto const &featureItem : allFeatureMap) {
                string id = featureItem.first;
                unsigned char *data = featureItem.second.get()->data();
                printf("%s\n", id.c_str());
                score = EF_Compare(buf, data)*100;
                int i = 10;
                if (score >= minScore) {
                    result = "";
                    result.append(id);
                    result.append(",");
                    result.append(to_string(score));
                    break;
                }
            }
        }
    } catch (exception &e) {
        LogUtil::log(e.what());
    }
    return env->NewStringUTF(result.c_str());
}
unsigned char tempFeatureBuf[2560];
extern "C" JNIEXPORT jstring
app/src/main/java/com/amitshekhar/DebugDB.java
@@ -48,7 +48,7 @@
        try {
            portNumber = 8080;//Integer.valueOf(context.getString(R.string.PORT_NUMBER));
        } catch (NumberFormatException ex) {
            System.out.println("DebugDB.initialize " + ex.getMessage());
            System1.out.println("DebugDB.initialize " + ex.getMessage());
            portNumber = DEFAULT_PORT;
        }
        clientServer = new ClientServer(context, portNumber, dbFactory);
app/src/main/java/com/amitshekhar/server/ClientServer.java
@@ -60,7 +60,7 @@
                mServerSocket = null;
            }
        } catch (Exception e) {
            System.out.println("ClientServer.stop " + e.getMessage());
            System1.out.println("ClientServer.stop " + e.getMessage());
        }
    }
@@ -77,9 +77,9 @@
        } catch (SocketException e) {
            // The server was stopped; ignore.
        } catch (IOException e) {
            System.out.println("ClientServer.run " + e.getMessage());
            System1.out.println("ClientServer.run " + e.getMessage());
        } catch (Exception ignore) {
            System.out.println("ClientServer.run " + ignore.getMessage());
            System1.out.println("ClientServer.run " + ignore.getMessage());
        }
    }
app/src/main/java/com/amitshekhar/server/RequestHandler.java
@@ -297,7 +297,7 @@
            if (Constants.APP_SHARED_PREFERENCES.equals(mSelectedDatabase)) {
                response = PrefHelper.addOrUpdateRow(mContext, tableName, rowDataRequests);
            } else {
                System.out.println("RequestHandler.addTableDataAndGetResponse " + rowDataRequests);
                System1.out.println("RequestHandler.addTableDataAndGetResponse " + rowDataRequests);
                response = DatabaseHelper.addRow(sqLiteDB, tableName, rowDataRequests);
            }
            return mGson.toJson(response);
app/src/main/java/com/amitshekhar/utils/Utils.java
@@ -97,7 +97,7 @@
                }
                byteArray = bos.toByteArray();
            } catch (IOException e) {
                System.out.println("Utils.getDatabase " + e.getMessage());
                System1.out.println("Utils.getDatabase " + e.getMessage());
            }
        } catch (Exception e) {
            e.printStackTrace();
app/src/main/java/com/basic/security/base/BaseApplication.java
@@ -121,7 +121,6 @@
//        WifiManager wm = (WifiManager) getSystemService(WIFI_SERVICE);
//        String ip = Formatter.formatIpAddress(wm.getConnectionInfo().getIpAddress());
        String ip = NetUtil.getIPAddress(true);
        Constants.erlangLocalNode = DeviceManager.getDeviceId() + "@" + ip;
        Constants.deviceId = DeviceManager.getDeviceId();
//        System.out.println("erlangLocalNode="+Constants.erlangLocalNode);
//        if (ContextCompat.checkSelfPermission(getApplicationContext(), android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
app/src/main/java/com/basic/security/fragment/AdminPasswordLoginFragment.java
@@ -69,7 +69,7 @@
    @Click
    public void login() {
        KeyboardUtil.hideSoftKeyboard();
        if (!Constants.isMonkeyApk) {
        if (1==1) {
            if (TextUtils.isEmpty(account.getText().toString().trim())) {
                ToastUtil.show("请输入用户名");
                return;
app/src/main/java/com/basic/security/manager/BaseManager.java
@@ -23,9 +23,7 @@
//sqlite数据库操作的公共基础类
public class BaseManager {
    public static Map<String, List<String>> tableColumnNames = new HashMap<>();
    public static List<String> syncTableNames = Constants.syncToErlang ? Arrays.asList(
            Person.tableName, PersonA.tableName
    ) : new ArrayList<>();
    public static List<String> syncTableNames =  new ArrayList<>();
    public static void save(ModelAdapter modelAdapter) {
        try {
app/src/main/java/com/basic/security/manager/IdCardManager.java
@@ -23,10 +23,12 @@
import com.basic.security.utils.IdCard;
import com.basic.security.utils.SocketUtil;
import com.basic.security.utils.ToastUtil;
import com.telpo.tps550.api.idcard.IdentityMsg;
import org.apache.commons.io.IOUtils;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.nio.ByteBuffer;
import java.text.SimpleDateFormat;
@@ -46,6 +48,7 @@
    static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    static long lastTimeShowVerificationSuccess = System.currentTimeMillis();
    static long lastTimeShowVerificationFail = System.currentTimeMillis();
    static com.telpo.tps550.api.idcard.IdCard idCardTps650 = null;
    private static IntentFilter filter;
    private static BroadcastReceiver receiver;
    private volatile static boolean inRead = false;
@@ -85,75 +88,157 @@
    //    static ReadUtil readUtil;
    public static void startReadIdCard() {
        BaseApplication.getApplication().executorService.execute(new Runnable() {
            @Override
            public void run() {
                while (true) {
                    try {
                        Result result = mReader.read();
                        if (result.error == IDCardReader.RESULT_OK) {
                            IDCard idCard = (IDCard) result.data;
                            System.out.println("IdCardManager.run " + idCard);
                            AndroidBmpUtil.save(idCard.getPhoto(), Constants.attachmentPath + idCard.getNumber() + ".bmp");
                            MainActivity activity = BaseApplication.getApplication().activity;
                            if (activity != null) {
                                if (activity.currentFragment == activity.fragment_su_auto_ic_wait_idcard
                                        || activity.currentFragment == activity.fragment_su_logged_ic_wait_idcard
                                        || (activity.currentFragment == activity.fragment_person_manage && activity.fragment_person_manage.needIdCardInfo())) {
                                    if (1 == 1) {
                                        IdCard idcard = new IdCard();
                                        idcard.birthday = idCard.getBirthday().getTime();//intent.getLongExtra("birthday", 0);
                                        idcard.cardNumber = idCard.getNumber();// intent.getStringExtra("cardNumber");
                                        idcard.gender = idCard.getSex().toString();//intent.getStringExtra("gender");
                                        idcard.name = idCard.getName();//intent.getStringExtra("name").trim();
                                        idcard.headBitmap = idCard.getPhoto();//BitmapFactory.decodeFile("/sdcard/security_excel_attachment/" + idcard.cardNumber + ".bmp");
                                        ByteArrayOutputStream stream = new ByteArrayOutputStream();
                                        idcard.headBitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
                                        idcard.jpgData = stream.toByteArray();
                                        //BitmapFactory.decodeByteArray(idcard.jpgData, 0, idcard.jpgData.length);
                                        BaseApplication.getApplication().detectLock.lock();
                                        idcard.featureData = FaceId.instance.extractFeature1(getPixelsBGR(idcard.headBitmap), idcard.headBitmap.getWidth(), idcard.headBitmap.getHeight());
                                        BaseApplication.getApplication().detectLock.unlock();
                                        BaseFragment.idCardReadTime = System.currentTimeMillis();
                                        System.out.println("IdCardManager.onReceive 2");
                                        BaseFragment.idCard = idcard;
                                        saveIdCard(idcard);
        if (Constants.isTps650) {
            BaseApplication.getApplication().activity.runOnUiThread(() -> {
                try {
                    if (idCardTps650 == null) {
                        idCardTps650 = new com.telpo.tps550.api.idcard.IdCard(BaseApplication.getApplication().activity);
                    }
                    BaseApplication.getApplication().executorService.execute(new Runnable() {
                        @Override
                        public void run() {
                            while (true) {
                                try {
                                    IdentityMsg info = idCardTps650.checkIdCardOverseas(3000);
                                    if (info != null) {
                                        byte[] image = idCardTps650.getIdCardImageOverseas(info);
                                        String cardNumber = info.getNo();
                                        Bitmap photo = idCardTps650.decodeIdCardImageOverseas(image);
                                        AndroidBmpUtil.save(photo, Constants.attachmentPath + cardNumber + ".bmp");
                                        String name = info.getName();
                                        name = name.replace(" ", "");
                                        MainActivity activity = BaseApplication.getApplication().activity;
                                        if (activity != null) {
                                            if (activity.currentFragment == activity.fragment_su_auto_ic_wait_idcard
                                                    || activity.currentFragment == activity.fragment_su_logged_ic_wait_idcard
                                                    || (activity.currentFragment == activity.fragment_person_manage && activity.fragment_person_manage.needIdCardInfo())) {
                                                if (1 == 1) {
                                                    IdCard idcard = new IdCard();
//                                            idcard.birthday = info.getBorn()+"";//intent.getLongExtra("birthday", 0);
                                                    idcard.cardNumber = cardNumber;// intent.getStringExtra("cardNumber");
                                                    idcard.gender = info.getSex();//intent.getStringExtra("gender");
                                                    idcard.name = name;//intent.getStringExtra("name").trim();
                                                    idcard.headBitmap = photo;//BitmapFactory.decodeFile("/sdcard/security_excel_attachment/" + idcard.cardNumber + ".bmp");
                                                    ByteArrayOutputStream stream = new ByteArrayOutputStream();
                                                    idcard.headBitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
                                                    idcard.jpgData = stream.toByteArray();
                                                    //BitmapFactory.decodeByteArray(idcard.jpgData, 0, idcard.jpgData.length);
                                                    saveIdCardToSdcard(idcard);
                                                    BaseApplication.getApplication().detectLock.lock();
                                                    File file = new File(Constants.attachmentPath + idcard.cardNumber + ".jpg");
                                                    idcard.featureData = FaceId.instance.extractFeature(file.getAbsolutePath());
                                                    BaseApplication.getApplication().detectLock.unlock();
                                                    BaseFragment.idCardReadTime = System.currentTimeMillis();
                                                    System.out.println("IdCardManager.onReceive 2");
                                                    BaseFragment.idCard = idcard;
                                                    saveIdCard(idcard);
                                                }
                                            }
                                            IdCard idcard = new IdCard();
//                                    idcard.birthday = idCard.getBirthday().getTime();//intent.getLongExtra("birthday", 0);
                                            idcard.cardNumber = cardNumber;// intent.getStringExtra("cardNumber");
                                            idcard.gender = info.getSex();//intent.getStringExtra("gender");
                                            idcard.name = name;//intent.getStringExtra("name").trim();
                                            idcard.headBitmap = photo;//BitmapFactory.decodeFile("/sdcard/security_excel_attachment/" + idcard.cardNumber + ".bmp");
                                            ByteArrayOutputStream stream = new ByteArrayOutputStream();
                                            idcard.headBitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
                                            idcard.jpgData = stream.toByteArray();
                                            idcard.createTime = System.currentTimeMillis();
                                            System.out.println("IdCardManager.onReceive " + idcard.name);
                                            saveIdCardToSdcard(idcard);
                                            BaseApplication.getApplication().detectLock.lock();
                                            File file = new File(Constants.attachmentPath + idcard.cardNumber + ".jpg");
                                            idcard.featureData = FaceId.instance.extractFeature(file.getAbsolutePath());
                                            BaseApplication.getApplication().detectLock.unlock();
                                            lastIdCard = idcard;
                                            SocketUtil.rpcCallSendIdCard(idcard);
                                        }
                                    } else {
                                        SystemClock.sleep(4*1000);
                                    }
                                }
                                if (1 == 1) {
                                    if (1 == 1) {
                                        IdCard idcard = new IdCard();
//                                        idcard.birthday = intent.getLongExtra("birthday", 0);
//                                        idcard.cardNumber = intent.getStringExtra("cardNumber");
//                                        idcard.gender = intent.getStringExtra("gender");
//                                        idcard.name = intent.getStringExtra("name").trim();
//                                        idcard.headBitmap = BitmapFactory.decodeFile("/sdcard/security_excel_attachment/" + idcard.cardNumber + ".bmp");
                                        idcard.birthday = idCard.getBirthday().getTime();//intent.getLongExtra("birthday", 0);
                                        idcard.cardNumber = idCard.getNumber();// intent.getStringExtra("cardNumber");
                                        idcard.gender = idCard.getSex().toString();//intent.getStringExtra("gender");
                                        idcard.name = idCard.getName();//intent.getStringExtra("name").trim();
                                        idcard.headBitmap = idCard.getPhoto();//BitmapFactory.decodeFile("/sdcard/security_excel_attachment/" + idcard.cardNumber + ".bmp");
                                        ByteArrayOutputStream stream = new ByteArrayOutputStream();
                                        idcard.headBitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
                                        idcard.jpgData = stream.toByteArray();
                                        idcard.createTime = System.currentTimeMillis();
                                        System.out.println("IdCardManager.onReceive " + idcard.name);
                                        BaseApplication.getApplication().detectLock.lock();
                                        idcard.featureData = FaceId.instance.extractFeature1(getPixelsBGR(idcard.headBitmap), idcard.headBitmap.getWidth(), idcard.headBitmap.getHeight());
                                        BaseApplication.getApplication().detectLock.unlock();
                                        lastIdCard = idcard;
                                        saveIdCardToSdcard(idcard);
                                        SocketUtil.rpcCallSendIdCard(idcard);
                                    }
                                } catch (Exception e) {
                                    e.printStackTrace();
                                }
                            }
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    });
                } catch (Exception e) {
                    e.printStackTrace();
                }
            });
            return;
        }
        if (Constants.isAraBM) {
            BaseApplication.getApplication().executorService.execute(new Runnable() {
                @Override
                public void run() {
                    if (!Constants.USE_GRAY_CAMERA) {
                        return;
                    }
                    while (true) {
                        try {
                            Result result = mReader.read();
                            if (result.error == IDCardReader.RESULT_OK) {
                                IDCard idCard = (IDCard) result.data;
                                System1.out.println("IdCardManager.run " + idCard);
                                AndroidBmpUtil.save(idCard.getPhoto(), Constants.attachmentPath + idCard.getNumber() + ".bmp");
                                MainActivity activity = BaseApplication.getApplication().activity;
                                if (activity != null) {
                                    if (activity.currentFragment == activity.fragment_su_auto_ic_wait_idcard
                                            || activity.currentFragment == activity.fragment_su_logged_ic_wait_idcard
                                            || (activity.currentFragment == activity.fragment_person_manage && activity.fragment_person_manage.needIdCardInfo())) {
                                        if (1 == 1) {
                                            IdCard idcard = new IdCard();
                                            idcard.birthday = idCard.getBirthday().getTime();//intent.getLongExtra("birthday", 0);
                                            idcard.cardNumber = idCard.getNumber();// intent.getStringExtra("cardNumber");
                                            idcard.gender = idCard.getSex().toString();//intent.getStringExtra("gender");
                                            idcard.name = idCard.getName();//intent.getStringExtra("name").trim();
                                            idcard.headBitmap = idCard.getPhoto();//BitmapFactory.decodeFile("/sdcard/security_yuyin_attachment/" + idcard.cardNumber + ".bmp");
                                            ByteArrayOutputStream stream = new ByteArrayOutputStream();
                                            idcard.headBitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
                                            idcard.jpgData = stream.toByteArray();
                                            //BitmapFactory.decodeByteArray(idcard.jpgData, 0, idcard.jpgData.length);
                                            BaseApplication.getApplication().detectLock.lock();
                                            idcard.featureData = FaceId.instance.extractFeature1(getPixelsBGR(idcard.headBitmap), idcard.headBitmap.getWidth(), idcard.headBitmap.getHeight());
                                            BaseApplication.getApplication().detectLock.unlock();
                                            BaseFragment.idCardReadTime = System.currentTimeMillis();
                                            System1.out.println("IdCardManager.onReceive 2");
                                            BaseFragment.idCard = idcard;
                                            saveIdCard(idcard);
                                        }
                                    }
                                    if (1 == 1) {
                                        if (1 == 1) {
                                            IdCard idcard = new IdCard();
                                            idcard.birthday = idCard.getBirthday().getTime();//intent.getLongExtra("birthday", 0);
                                            idcard.cardNumber = idCard.getNumber();// intent.getStringExtra("cardNumber");
                                            idcard.gender = idCard.getSex().toString();//intent.getStringExtra("gender");
                                            idcard.name = idCard.getName();//intent.getStringExtra("name").trim();
                                            idcard.headBitmap = idCard.getPhoto();//BitmapFactory.decodeFile("/sdcard/security_yuyin_attachment/" + idcard.cardNumber + ".bmp");
                                            ByteArrayOutputStream stream = new ByteArrayOutputStream();
                                            idcard.headBitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
                                            idcard.jpgData = stream.toByteArray();
                                            idcard.createTime = System.currentTimeMillis();
                                            System1.out.println("IdCardManager.onReceive " + idcard.name);
                                            BaseApplication.getApplication().detectLock.lock();
                                            idcard.featureData = FaceId.instance.extractFeature1(getPixelsBGR(idcard.headBitmap), idcard.headBitmap.getWidth(), idcard.headBitmap.getHeight());
                                            BaseApplication.getApplication().detectLock.unlock();
                                            lastIdCard = idcard;
                                            saveIdCardToSdcard(idcard);
                                            SocketUtil.rpcCallSendIdCard(idcard);
                                        }
                                    }
                                }
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        });
            });
        }
        if (Constants.indoorOutdoorInOne) {
            return;
        }
@@ -164,11 +249,11 @@
//            BaseApplication.getApplication().executorService.execute(()->{
//                while (true) {
//                    try {
//                        System.out.println("IdCardManager.startReadIdCard " + 1);
//                        System1.out.println("IdCardManager.startReadIdCard " + 1);
//                        if (readUtil.isPort()) {
//                            System.out.println("IdCardManager.startReadIdCard " + 2);
//                            System1.out.println("IdCardManager.startReadIdCard " + 2);
//                            IDCard idCard = readUtil.readCard();
//                            System.out.println("ReadIDCardService.run idCard=" + idCard);
//                            System1.out.println("ReadIDCardService.run idCard=" + idCard);
//                            if (idCard != null) {
//                                Bitmap headBitmap = BitmapFactory.decodeFile(idCard.getIdPhoto());
//                                IdCard c = new IdCard();
@@ -215,7 +300,7 @@
        }
        activity.readCardUtil = new ReadCardUtil(activity, new ReadCardUtil.OnReadCardListener() {
            public void onReadCardSucceed(String s, CardInfo cardInfo, Intent intent) {
                System.out.println("IdCardManager.onReadCardSucceed");
                System1.out.println("IdCardManager.onReadCardSucceed");
                if (activity != null) {
                    if (activity.currentFragment == activity.fragment_su_auto_ic_wait_idcard || activity.currentFragment == activity.fragment_su_logged_ic_wait_idcard
                            || (activity.currentFragment == activity.fragment_person_manage && activity.fragment_person_manage.needIdCardInfo())) {
@@ -239,14 +324,14 @@
            }
            public void onReadCardFail(int i, String s) {
                System.out.println("IdCardManager.onReadCardFail");
                System1.out.println("IdCardManager.onReadCardFail");
            }
        });
        filter = new IntentFilter();
        filter.addAction("read.id.card.data");
        receiver = new BroadcastReceiver() {
            public void onReceive(Context context, Intent intent) {
                System.out.println("IdCardManager.onReceive 1");
                System1.out.println("IdCardManager.onReceive 1");
                if (activity != null) {
                    if (activity.currentFragment == activity.fragment_su_auto_ic_wait_idcard
                            || activity.currentFragment == activity.fragment_su_logged_ic_wait_idcard
@@ -260,7 +345,7 @@
                            idcard.cardNumber = intent.getStringExtra("cardNumber");
                            idcard.gender = intent.getStringExtra("gender");
                            idcard.name = intent.getStringExtra("name").trim();
                            idcard.headBitmap = BitmapFactory.decodeFile("/sdcard/security_excel_attachment/" + idcard.cardNumber + ".bmp");
                            idcard.headBitmap = BitmapFactory.decodeFile("/sdcard/security_yuyin_attachment/" + idcard.cardNumber + ".bmp");
                            ByteArrayOutputStream stream = new ByteArrayOutputStream();
                            idcard.headBitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
                            idcard.jpgData = stream.toByteArray();
@@ -269,7 +354,7 @@
                            idcard.featureData = FaceId.instance.extractFeature1(getPixelsBGR(idcard.headBitmap), idcard.headBitmap.getWidth(), idcard.headBitmap.getHeight());
                            BaseApplication.getApplication().detectLock.unlock();
                            BaseFragment.idCardReadTime = System.currentTimeMillis();
                            System.out.println("IdCardManager.onReceive 2");
                            System1.out.println("IdCardManager.onReceive 2");
                            BaseFragment.idCard = idcard;
                            saveIdCard(idcard);
                        }
@@ -286,13 +371,13 @@
                            idcard.cardNumber = intent.getStringExtra("cardNumber");
                            idcard.gender = intent.getStringExtra("gender");
                            idcard.name = intent.getStringExtra("name").trim();
                            idcard.headBitmap = BitmapFactory.decodeFile("/sdcard/security_excel_attachment/" + idcard.cardNumber + ".bmp");
                            idcard.headBitmap = BitmapFactory.decodeFile("/sdcard/security_yuyin_attachment/" + idcard.cardNumber + ".bmp");
                            ByteArrayOutputStream stream = new ByteArrayOutputStream();
                            idcard.headBitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
                            idcard.jpgData = stream.toByteArray();
//                            idcard.headBitmap = BitmapFactory.decodeByteArray(idcard.jpgData, 0, idcard.jpgData.length);
                            idcard.createTime = System.currentTimeMillis();
                            System.out.println("IdCardManager.onReceive " + idcard.name);
                            System1.out.println("IdCardManager.onReceive " + idcard.name);
                            BaseApplication.getApplication().detectLock.lock();
                            idcard.featureData = FaceId.instance.extractFeature1(getPixelsBGR(idcard.headBitmap), idcard.headBitmap.getWidth(), idcard.headBitmap.getHeight());
                            BaseApplication.getApplication().detectLock.unlock();
@@ -300,7 +385,7 @@
                            saveIdCardToSdcard(idcard);
                            SocketUtil.rpcCallSendIdCard(idcard);
//                            BaseFragment.idCardReadTime = System.currentTimeMillis();
//                            System.out.println("IdCardManager.onReceive 2");
//                            System1.out.println("IdCardManager.onReceive 2");
//                            BaseFragment.idCard = idcard;
//                            saveIdCard(idcard);
                        }
app/src/main/java/com/basic/security/receiver/WebRtcBroadCastReceiver.java
@@ -15,12 +15,6 @@
    public void onReceive(Context context, Intent intent) {
        String type = intent.getStringExtra("type");
        if (!TextUtils.isEmpty(type)) {
            if (Constants.webRtcServerStarted.equals(type)) {
                webRtcServerStarted = true;
            }
            if (Constants.webRtcClientConnected.equals(type)) {
                webRtcClientConnected = true;
            }
        }
    }
}
app/src/main/java/com/basic/security/utils/Constants.java
@@ -1,86 +1,77 @@
package com.basic.security.utils;
public class Constants {
    public static boolean isHuaWeiPad = false;
    public static boolean isMonkeyApk = false;
    // rk3399
    public static int RGB_CAMERA = 0;
    public static int GRAY_CAMERA = 1;
    public static int rotation = 0;
    public static boolean useAlf = false;
    // 华为平板
//    public static int RGB_CAMERA = isHuaWeiPad ? 1 : 0;
//    public static int GRAY_CAMERA = isHuaWeiPad ? 0 : 1;
//     阿尔法
//    public static boolean useAef = true;
//    public static int RGB_CAMERA = isHuaWeiPad ? 0 : 1;
//    public static int GRAY_CAMERA = isHuaWeiPad ? 1 : 0;
//    public static int rotation = 270;
    public static boolean needIdCardModule = true;
    // 使用红外摄像头
    public static boolean USE_GRAY_CAMERA = false;
    public static boolean showCapturedImages = false;
    //5.1.1的那个是旧的    白色pad的是新的
    public static boolean isNewIDCardReader = false;
    //删除标识:0-未删除    1-已删除
    public static int delFlag = 0;
    //存储当前设备的device_id
    public static String deviceId = "indoor1";
    public static String erlangLocalNode = "xuxiuxipad@192.168.1.119";
    public static boolean syncToErlang = false;
    public static boolean printSql = false;
    public static boolean showLog = true;
    public static boolean showLog1 = false;
    public static long compareFeatureTime;
    public static float score = 0.0f;
    public static int minRecognizeScore = 80;
    public static String baseDatabasePath = "/sdcard/security_excel_database/base_database.db";
    public static String cacheDatabasePath = "/sdcard/security_excel_database/cache_database.db";
    public static String syncDatabasePath = "/sdcard/security_excel_database/sync_database.db";
    public static String attachmentPath = "/sdcard/security_excel_attachment/";
    public static String baseDatabasePath = "/sdcard/security_yuyin_indoor/base_database.db";
    public static String cacheDatabasePath = "/sdcard/security_yuyin_indoor/cache_database.db";
    public static String syncDatabasePath = "/sdcard/security_yuyin_indoor/sync_database.db";
    public static String attachmentPath = "/sdcard/security_yuyin_attachment/";
    public static String SUCCESS = "success";
    public static String TRUE = "true";
    public static String FALSE = "false";
    public static String TABLE = "table";
    public static int cameraServerPort = 8880;
    public static int snapshotServerPort = 8881;
    public static int relayServerPort = 8882;
    public static int faceTimeServerPort = 8883;
    public static int officeServerPort = 8884;
    public static int sqliteServerPort = 8885;
    public static int guestServerPort = 8886;
    public static int indoorServerPort = 8889;
    public static int personServerPort = 8890;
    public static int cameraImagePathDownloadServerPort = 8887;
    public static long reconnectInMilliSeconds = 3000;
    //    public static boolean needIdCardModule = false;
    public static boolean useBgrArray = true;
    public static boolean useNv21ToBgr = false;
    public static boolean stopCameraAndVideo = false;
    public static boolean enableTemporaryPerson = true;
    public static boolean useErlangVersion2 = true;
    public static boolean guestSignUp = false;
    public static String localIp = "127.0.0.1";
    public static String LENGTH = "length";
    public static boolean useGuest = true;
    public static boolean sqliteSync = false;
    public static String getApkUrl = "http://www.aiotlink.com:8080/getApk?apkName=Security_yuyin&currentApkVersion=1";
    public static String webRtcServerStarted = "webRtcServerStarted";
    public static String webRtcClientConnected = "webRtcClientConnected";
    public static boolean useOrg = true;
    public static boolean useImport = true;
    public static boolean isYuYin = true;
    public static String isDeleteTrue = "isDeleteTrue";
    public static String isDeleteFalse = "isDeleteFalse";
    public static String enableFalse = "enableFalse";
    public static String enableTrue = "enableTrue";
    public static boolean isIndoor = true;
    public static boolean isOutdoor = !isIndoor;
    public static boolean isUseSerf = false;
    public static boolean autoRestart = false;
    public static boolean landscape = true;
    public static boolean isTps650 = true;
    public static boolean indoorOutdoorInOne = true;
    public static boolean deletePersonPhysical = true;
    public static boolean deletePersonPhysical = false;
    public static boolean useLight = false;
    public static boolean isWhiteDevice = false;
    public static String nodeName = "node_indoor";
    public static boolean isUseSocketRpc = false;
    public static String deviceId = "PAD97a1cfb8c50c";
    public static String nodeId = "PAD97a1cfb8c50c";
    public static boolean USE_GRAY_CAMERA = false;
    public static String other_node_ip = "192.168.5.22";
    public static boolean isTps650 = true;
    public static boolean isAraBM = false;
    static {
        if (USE_GRAY_CAMERA) {
            deviceId = "PAD17a1cfb8c50c";
            nodeId = "PAD17a1cfb8c50c";
            isUseSerf = false;
        } else {
            other_node_ip = "192.168.222.105";
        }
    }
    public static String deviceId() {
        return deviceId;
    }
    public static String nodeId() {
        return nodeId;
    }
    public static String other_node_ip() {
        return other_node_ip;
    }
}
app/src/main/java/com/basic/security/utils/FaceId.java
@@ -36,7 +36,6 @@
    public static void initSdk(Activity activity, Preview rgbPreview, Preview grayPreview, DetectListener detectListener) {
        String ip = NetUtil.getIPAddress(true);
        Constants.erlangLocalNode = DeviceManager.getDeviceId() + "@" + ip;
        Constants.deviceId = DeviceManager.getDeviceId();
        FaceId.activity = activity;
        AssetHelper.copyAssets(activity.getAssets(), new ContextWrapper(activity).getFilesDir().getAbsolutePath());
app/src/main/java/com/basic/security/utils/socket/RelayServerUtil.java
@@ -119,11 +119,7 @@
        try {
            if (!relayServerUtilThread.isRunning) {
                relayServerUtilThread.isRunning = true;
                if (Constants.isHuaWeiPad) {
                    relayServerUtilExecutorService.execute(relayServerUtilThread);
                } else {
                    relayServerUtilThread.start();
                }
                relayServerUtilExecutorService.execute(relayServerUtilThread);
            }
        } catch (Exception e) {
            relayServerUtilThread.isRunning = false;
app/src/main/java/com/basic/security/utils/socket/indoor/IndoorGuestSocketClient.java
@@ -137,9 +137,6 @@
                                    socketUtil.mBufferManager.fillBuffer1(map, socketUtil.imageBuff, socketUtil.imageBuff.length, hasFaces);
                                }
                            }
                            boolean webRtcClientConnected = Constants.TRUE.equals(map.get(Constants.webRtcClientConnected));
                            boolean webRtcServerStarted = Constants.TRUE.equals(map.get(Constants.webRtcServerStarted));
                            ((MainActivity) BaseApplication.getApplication().activity).showAnswerCall(webRtcServerStarted && !webRtcClientConnected);
                            if (Constants.TRUE.equals(SettingManager.getTransferVideo())) {
                                SystemClock.sleep(40);
                            } else {
app/src/main/java/com/basic/security/utils/socket/outdoor/OutdoorGuestSocketServer.java
@@ -236,8 +236,6 @@
                            map.put(GuestMessage.frameJpgOrYuv, frameJpgOrYuv);
                            map.put(GuestMessage.frameJpgLength, frameJpgLength + "");
                            map.put(GuestMessage.hasFrameData, hasFrameData);
                            map.put(Constants.webRtcClientConnected, WebRtcBroadCastReceiver.webRtcClientConnected ? Constants.TRUE : Constants.FALSE);
                            map.put(Constants.webRtcServerStarted, allowed && WebRtcBroadCastReceiver.webRtcServerStarted ? Constants.TRUE : Constants.FALSE);
                            map.put(GuestMessage.deviceId, DeviceManager.getDeviceId());
                            socketUtil.writeMap(map);
                            if (Constants.TRUE.equals(hasFrameData)) {
app/src/main/java/java/lang/System1.java
New file
@@ -0,0 +1,7 @@
package java.lang;
public class System1 {
    public static System2 out = new System2();
}
app/src/main/java/java/lang/System2.java
New file
@@ -0,0 +1,11 @@
package java.lang;
import com.basic.security.utils.FrameUtil;
public class System2 {
    public void println(Object obj) {
        System.out.println(obj.toString()
//                +" " + FrameUtil.getFrames()
        );
    }
}
app/src/main/jniLibs/armeabi-v7a/libAlUSB.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libIDFpr.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libIDFpr2.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libcard_reader.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libcollect.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libdecode.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libfingerprint.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libidcard.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libidcard900.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libidfprcap.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libled.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libledpower.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libmoneybox.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libpicc.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libposutil.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libserial_port.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libsystem_util.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libtelpo_msr.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libtelpo_nfc.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libtelpo_printer.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libtelpo_printer5880.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libtelpo_printer_48.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libtelpo_printer_581.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libtelpo_serial.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libusb_util.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libwlt2bmp.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libzksensorcore.so
Binary files differ
app/src/main/jniLibs/armeabi-v7a/libzkwltdecode.so
Binary files differ