VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/BaseApplication.java
@@ -2,12 +2,10 @@ import android.app.Application; import cn.com.basic.face.discern.common.CommonVariables; import cn.com.basic.face.discern.entity.Device; import cn.com.basic.face.service.CheckInMng; import cn.com.basic.face.service.InternetAccessThread; import cn.com.basic.face.service.DictionaryMng; import cn.com.basic.face.service.DeviceMng; import cn.com.basic.face.service.RegisterMng; import cn.com.basic.face.service.SurveillanceMng; import com.facebook.drawee.backends.pipeline.Fresco; import com.lzy.okhttputils.OkHttpUtils; @@ -67,7 +65,6 @@ Fresco.initialize(this); initOkHttpUtils(); application = this; } private void initOkHttpUtils() { @@ -82,38 +79,7 @@ } public boolean networkNotAvailable() { return !networkAvailable(); } public boolean networkAvailable() { boolean connected = true; // ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); // if(connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED || // connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) { // connected = true; // } if (connected) { // sendOfflineDataToServer(); } return connected; return MainActivity.getInstance().getInternetAccessible() == CommonVariables.InternetAccess.INTERNET_ACCESSIBLE; } public void sendOfflineDataToServer() { // RegisterMng.getInstance().sendOfflineVisitorRegisterToServer(); // if (RegisterMng.getInstance().hasOfflineVisitorRegisterData()) { // return; // } // RegisterMng.getInstance().sendOfflineAttenderRegisterToServer(); // if (RegisterMng.getInstance().hasOfflineAttenderRegisterData()) { // return; // } //// CheckInMng.getInstance().sendOfflineCheckInToServer(); //// if (CheckInMng.getInstance().hasOfflineCheckInData()) { //// return; //// } // SurveillanceMng.getInstance().sendOfflineUnknownToServer(); } } VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/MainActivity.java
@@ -67,9 +67,11 @@ import cn.com.basic.face.fragment.VisitFragment; import cn.com.basic.face.fragment.VisitorRegisterFragment; import cn.com.basic.face.service.DeviceMng; import cn.com.basic.face.service.InternetAccessThread; import cn.com.basic.face.service.SurveillanceMng; import cn.com.basic.face.service.sqlite.SurveillanceDao; import cn.com.basic.face.service.sqlite.TestDao; import cn.com.basic.face.service.sync.up.BaseSync; import cn.com.basic.face.util.FileUtil; import cn.com.basic.face.util.NativeImg; import cn.com.basic.face.util.TabNameUtil; @@ -81,6 +83,15 @@ private static TabLayout mTabLayout; public static ViewPager mViewPager; public SQLiteDatabase db; private int internetAccessible = CommonVariables.InternetAccess.INTERNET_NOT_INITIALIZE; public int getInternetAccessible() { return internetAccessible; } public void setInternetAccessible(int internetAccessible) { this.internetAccessible = internetAccessible; } public static void selectPage(int pageNum) { mTabLayout.getTabAt(pageNum).select(); @@ -97,6 +108,7 @@ mViewPager = (ViewPager) findViewById(R.id.viewpager); mTabLayout.setTabGravity(TabLayout.GRAVITY_FILL); instance = this; internetAccessThread.start(); } public MyFragmentPagerAdapter myFragmentPagerAdapter; @@ -338,6 +350,8 @@ public static float sDensity = 1.0f; InternetAccessThread internetAccessThread = new InternetAccessThread(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/discern/common/CommonVariables.java
@@ -123,4 +123,10 @@ public static boolean VISITOR_REGISTER_SELECTED = true; } public static class InternetAccess { public static final int INTERNET_NOT_INITIALIZE = -1; public static final int INTERNET_ACCESSIBLE = 1; public static final int INTERNET_NOT_ACCESSIBLE = 0; } } VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/AttenderRegisterFragment.java
@@ -9,13 +9,10 @@ import android.os.Environment; import android.provider.MediaStore; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.view.View; import android.view.WindowManager; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; @@ -26,7 +23,6 @@ import cn.com.basic.face.base.BaseFragment; import cn.com.basic.face.dialog.AttenderRegisterSelectPhotoDialog; import cn.com.basic.face.dialog.AttenderRegisterUploadPhotoDialog; import cn.com.basic.face.dialog.SurveillancePhotoDialog; import cn.com.basic.face.discern.common.CommonVariables; import cn.com.basic.face.discern.entity.Register; import cn.com.basic.face.discern.query.item.CheckInQueryItem; @@ -41,12 +37,11 @@ import cn.com.basic.face.util.FileUtil; import cn.com.basic.face.util.IdCard; import cn.com.basic.face.util.IdCardReaderThread; import cn.com.basic.face.thread.IdCardReaderThread; import cn.com.basic.face.util.NativeImg; import cn.com.basic.face.util.OkClickedListener; 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.widget.register.RegisterRightFieldLabelView; import cn.com.basic.face.widget.register.RegisterRightFieldTextView; VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/SurveillanceFragment.java
@@ -4,15 +4,11 @@ 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; import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.RelativeLayout; @@ -28,18 +24,13 @@ import cn.com.basic.face.util.RtspFaceNative; import cn.com.basic.face.service.SurveillanceMng; import cn.com.basic.face.util.SurveillancePhotoEmulateThread; import cn.com.basic.face.thread.SurveillancePhotoEmulateThread; import cn.com.basic.face.widget.surveilance.SurveillanceBottomAttendanceListView; import cn.com.basic.face.widget.surveilance.SurveillanceBottomVisitorListView; import com.facebook.common.file.FileUtils; import com.lidroid.xutils.view.annotation.ViewInject; import com.lidroid.xutils.view.annotation.event.OnClick; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.File; import java.io.FileReader; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/VisitorRegisterFragment.java
@@ -13,22 +13,18 @@ import android.view.WindowManager; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; import com.bsk.zhangbo.demoforbsk.R; import cn.com.basic.face.adapter.SurveillanceFragment; import cn.com.basic.face.base.BaseApplication; import cn.com.basic.face.base.BaseFragment; import cn.com.basic.face.dialog.SurveillancePhotoDialog; import cn.com.basic.face.dialog.VisitorRegisterSelectPhotoDialog; import cn.com.basic.face.dialog.VisitorRegisterUploadPhotoDialog; import cn.com.basic.face.discern.common.CommonVariables; 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.OfflineVisitorRegisterItem; import cn.com.basic.face.discern.query.item.SurveillanceQueryItem; import cn.com.basic.face.service.DictionaryMng; import cn.com.basic.face.service.RegisterMng; @@ -37,7 +33,7 @@ import cn.com.basic.face.util.FileUtil; import cn.com.basic.face.util.IdCard; import cn.com.basic.face.util.IdCardReaderThread; import cn.com.basic.face.thread.IdCardReaderThread; import cn.com.basic.face.util.NativeImg; import cn.com.basic.face.util.OkClickedListener; VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/AttendanceMng.java
@@ -32,9 +32,7 @@ if (!BaseApplication.deviceAvailable) { return; } if(BaseApplication.getInstance().networkNotAvailable()) { reloadLeftListAfterReturn(append, AttendanceDao.getInstance().reloadLeftList(searchText, pageNum, append)); } else { if(BaseApplication.getInstance().networkAvailable()) { RequestParams params = new RequestParams(AppApi.BASE_URL + AppApi.Query.ATTENDANCE_QUERY); params.addBodyParameter(AttendanceQueryCondition.FieldNames.username, searchText); params.addBodyParameter(AttendanceQueryCondition.FieldNames.deviceCompanyId, BaseApplication.getInstance().getAndroidDevice().getCompanyId()); @@ -45,6 +43,8 @@ reloadLeftListAfterReturn(append, resultBean); } }); } else { reloadLeftListAfterReturn(append, AttendanceDao.getInstance().reloadLeftList(searchText, pageNum, append)); } } VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DeviceMng.java
@@ -8,7 +8,6 @@ import cn.com.basic.face.base.MainActivity; import cn.com.basic.face.discern.common.CommonVariables; import cn.com.basic.face.fragment.DeviceFragment; import cn.com.basic.face.service.sqlite.AttendanceDao; import cn.com.basic.face.service.sqlite.DeviceDao; import cn.com.basic.face.util.AppApi; @@ -21,7 +20,7 @@ import cn.com.basic.face.discern.common.BaseCommonCallBack; import cn.com.basic.face.discern.entity.Device; import cn.com.basic.face.util.SharedPreferencesUtils; import cn.com.basic.face.util.SyncUpAndDownThread; import cn.com.basic.face.service.sync.SyncUpAndDownThread; public class DeviceMng { public static DeviceMng instance = new DeviceMng(); @@ -67,6 +66,9 @@ // }); // return; // } if (MainActivity.getInstance().getInternetAccessible() == CommonVariables.InternetAccess.INTERNET_NOT_INITIALIZE) { return; } if (BaseApplication.getInstance().networkAvailable()) { RequestParams params = new RequestParams(AppApi.BASE_URL + AppApi.Query.DEVICE_QUERY); VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/InternetAccessThread.java
New file @@ -0,0 +1,96 @@ package cn.com.basic.face.service; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; import cn.com.basic.face.base.BaseApplication; import cn.com.basic.face.base.MainActivity; import cn.com.basic.face.discern.common.CommonVariables; import cn.com.basic.face.util.AppApi; public class InternetAccessThread extends Thread { @Override public void run() { while (true) { try { Thread.sleep(10* 1000); boolean hasInternetAccess = InternetAccess.getNetWorkInfo(); if (hasInternetAccess) { MainActivity.getInstance().setInternetAccessible(CommonVariables.InternetAccess.INTERNET_ACCESSIBLE); } else { MainActivity.getInstance().setInternetAccessible(CommonVariables.InternetAccess.INTERNET_NOT_ACCESSIBLE); } } catch (Exception e) { e.printStackTrace(); } } } public static class InternetAccess { public static boolean getNetWorkInfo() { try { ConnectivityManager manager = (ConnectivityManager) MainActivity.getInstance() .getApplicationContext().getSystemService( Context.CONNECTIVITY_SERVICE); if (manager == null) { return false; } NetworkInfo networkinfo = manager.getActiveNetworkInfo(); if (networkinfo == null || !networkinfo.isAvailable() || !networkinfo.isConnectedOrConnecting()) { return false; } else { if (openUrl()) { return true; } else { return false; } } } catch (Exception e) { e.printStackTrace(); return false; } } public static boolean openUrl() { StringBuilder total = new StringBuilder(); try { URL url = new URL(AppApi.BASE_URL); URLConnection urlCon = url.openConnection(); urlCon.setConnectTimeout(1500); InputStream is = urlCon.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(bis)); String line; while ((line = bufferedReader.readLine()) != null) { total.append(line).append('\n'); } bufferedReader.close(); bis.close(); is.close(); } catch (Exception e) { e.printStackTrace(); return false; } if (total.toString().indexOf("Hello World!") > -1) { return true; } else { return false; } } } } VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/SyncUpAndDownThread.java
File was renamed from VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SyncUpAndDownThread.java @@ -1,7 +1,8 @@ package cn.com.basic.face.util; package cn.com.basic.face.service.sync; import java.util.Date; import cn.com.basic.face.service.InternetAccessThread.InternetAccess; import cn.com.basic.face.service.sync.down.AttendanceDownSync; import cn.com.basic.face.service.sync.down.CompanyDownSync; import cn.com.basic.face.service.sync.down.DepartmentDownSync; @@ -79,24 +80,23 @@ @Override public void run() { firstSync = buildSyncChain(); firstSync.setAllSyncComplete(false); firstSync.sync(); buildSyncChain(); while (true) { try { Date now = new Date(); double minutes = (now.getTime() - lastTime.getTime())*1.0 / 1000 / 60; if (minutes >= 5) { firstSync.setAllSyncComplete(false); firstSync.sync(); lastTime = now; if (minutes >= 0.3) { if (InternetAccess.getNetWorkInfo()) { firstSync.setAllSyncComplete(false); firstSync.sync(); lastTime = now; } } else { Thread.sleep(10*1000); return; } } catch (Exception e) { try { Thread.sleep(30 * 1000); Thread.sleep(10 * 1000); } catch (Exception e2) { e2.printStackTrace(); } VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/down/BaseDownSync.java
@@ -20,6 +20,7 @@ } public void syncNext() { System.out.println("sync."+this.getClass().getName()+" 正在同步"); setSyncComplete(true); if (getNext() != null) { getNext().sync(); VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/thread/IdCardReaderThread.java
File was renamed from VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/IdCardReaderThread.java @@ -1,4 +1,4 @@ package cn.com.basic.face.util; package cn.com.basic.face.thread; import android.graphics.Bitmap; import android.graphics.BitmapFactory; @@ -16,6 +16,7 @@ import cn.com.basic.face.base.MainActivity; import cn.com.basic.face.fragment.VisitorRegisterFragment; import cn.com.basic.face.service.RegisterMng; import cn.com.basic.face.util.IdCard; import static cn.com.basic.face.util.FileUtil.writeToFile; VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/thread/SurveillancePhotoEmulateThread.java
File was renamed from VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SurveillancePhotoEmulateThread.java @@ -1,4 +1,4 @@ package cn.com.basic.face.util; package cn.com.basic.face.thread; import android.graphics.Bitmap; import android.graphics.BitmapFactory; @@ -14,6 +14,8 @@ import cn.com.basic.face.discern.common.CommonVariables; import cn.com.basic.face.discern.query.item.SurveillanceQueryItem; import cn.com.basic.face.service.SurveillanceMng; import cn.com.basic.face.util.FileUtil; import cn.com.basic.face.util.NativeImg; public class SurveillancePhotoEmulateThread extends Thread { @Override VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/RtspFaceNative.java
@@ -150,7 +150,7 @@ surveillanceQueryItem.setHeight(item.height+""); surveillanceQueryItem.setCreateTime(new Date()); surveillanceQueryItem.setInOrOutCamera(cameraIdx+""); if (BaseApplication.getInstance().networkNotAvailable()) { if (!BaseApplication.getInstance().networkAvailable()) { surveillanceQueryItem.setRegisterOrCheckIn(CommonVariables.Surveillance.OFFLINE_SURVEILLANCE_ITEM_TYPE); } bitmapList.add(surveillanceQueryItem); VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SqliteSqlUtil.java
@@ -1,5 +1,7 @@ package cn.com.basic.face.util; import android.database.sqlite.SQLiteConstraintException; import java.util.List; import cn.com.basic.face.base.MainActivity; @@ -11,12 +13,23 @@ if (sqliteSqlBeenList == null) { return; } try { for (SqliteSqlBean SqliteSqlBean : sqliteSqlBeenList) { MainActivity.getInstance().db.execSQL(SqliteSqlBean.getInsertSql()); SqliteSqlBean sqliteSqlBean = null; for (int i = 0; i < sqliteSqlBeenList.size(); i++) { try { sqliteSqlBean = sqliteSqlBeenList.get(i); System.out.println(sqliteSqlBean.getInsertSql()); MainActivity.getInstance().db.execSQL(sqliteSqlBean.getInsertSql()); } catch (Exception e) { if (e instanceof SQLiteConstraintException) { System.out.println(e.getMessage()); return; } if (sqliteSqlBean != null) { String sql = sqliteSqlBean.getInsertSql(); } e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } }