From 9e5babf9db52e64bdae60137be7696e56241fca6 Mon Sep 17 00:00:00 2001
From: xingzilong <xingzilong@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期五, 18 八月 2017 18:12:17 +0800
Subject: [PATCH] H264 NALU解析  并在RTSPServer判断

---
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sqlite/SurveillanceDao.java |  128 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 107 insertions(+), 21 deletions(-)

diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sqlite/SurveillanceDao.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sqlite/SurveillanceDao.java
index 1ba34a1..6cc0f26 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sqlite/SurveillanceDao.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sqlite/SurveillanceDao.java
@@ -1,14 +1,20 @@
 package cn.com.basic.face.service.sqlite;
 
-import android.graphics.Bitmap;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
 
+import java.io.File;
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.UUID;
 
-import cn.com.basic.face.discern.query.item.SurveillancePhotoQueryItem;
+import cn.com.basic.face.base.BaseApplication;
+import cn.com.basic.face.base.MainActivity;
+import cn.com.basic.face.discern.entity.OfflineSurveillance;
 import cn.com.basic.face.discern.query.item.SurveillanceQueryItem;
+import cn.com.basic.face.discern.query.item.UnknownQueryItem;
 import cn.com.basic.face.util.FileUtil;
 
 public class SurveillanceDao {
@@ -17,35 +23,115 @@
     public static SurveillanceDao getInstance() {
         return instance;
     }
-
+    //companyId
     //offline_           (headPicture, cameraInOrOut, createTime, visitId)
-    public void addBitmap(final List<SurveillanceQueryItem> bitmapList, final byte[] byteArray, int len, final String cameraInOrOut, byte[] surveillancePhotoBytes) {
+    public void saveOfflineUnknownToLocal(final List<SurveillanceQueryItem> bitmapList, final byte[] rawData, final String cameraInOrOut) {
+        if (bitmapList == null || bitmapList.size() == 0) {
+            return;
+        }
+        SQLiteDatabase db = null;
+        try {
+            String rawDataFileName = UUID.randomUUID().toString() + "";
+            FileUtil.writeToFile(rawDataFileName, rawData);
+            String headPicture = "";
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String createTime = sdf.format(new Date());
+            String surveillanceId = UUID.randomUUID().toString();
+            String deviceId = BaseApplication.getInstance().getAndroidDevice().getDeviceId();
+            MainActivity.getInstance().db.execSQL(
+                    "insert into offline_surveillance(surveillance_id,device_id,raw_data_path, camera_in_or_out, create_time,device_company_id) values('" +
+                            surveillanceId + "','" +
+                            deviceId + "','" +
+                            rawDataFileName + "','" +
+                            cameraInOrOut + "','" +
+                            createTime + "','" +
+                            BaseApplication.getInstance().getAndroidDevice().getCompanyId() + "'" +")"
+            );
 
-
-        for (SurveillanceQueryItem item : bitmapList) {
-            Bitmap bitmap = item.getBitmap();
-            String fileName = UUID.randomUUID().toString()+".bmp";
-            FileUtil.writeToFile(fileName, new byte[]{});
-
+        } catch (Exception e) {
+            e.printStackTrace();
         }
 
-        String headPicture = "";
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        String createTime = sdf.format(new Date());
-        String sql = "insert offline_temp(head_picture, camera_in_or_out, create_time, visit_id) values('"+
-                headPicture+"','"+
-                cameraInOrOut+"','"+
-                createTime+"','"+
-               "null" +"')";
-        //瀛樺叆鏁版嵁搴�
-        //鎶婂浘鐗囧瓨鍏ユ湰鍦版枃浠�
         //浜哄憳娉ㄥ唽鍙互閫夋嫨鏈湴鍥剧墖
         //鍚屾涓存椂琛�
 
         //鍚屾璁垮鐧昏琛�
 
         //鍒犻櫎鏈湴鏂囦欢锛堝惊鐜垹闄わ級
-
     }
 
+    public UnknownQueryItem readOfflineUnknownFromLocal() {
+        UnknownQueryItem item = null;
+        Cursor c = MainActivity.getInstance().db.rawQuery("select raw_data_path,camera_in_or_out,create_time from offline_surveillance order by create_time limit 1", new String[]{});
+        if (c.moveToFirst()) {
+            item = new UnknownQueryItem();
+            item.setRawDataPath(c.getString(c.getColumnIndex("raw_data_path")));
+            item.setCameraInOrOut(c.getString(c.getColumnIndex("camera_in_or_out")));
+            item.setCreateTime(c.getString(c.getColumnIndex("create_time")));
+        }
+        return item;
+    }
+
+    public void removeLocalSqliteRecord(UnknownQueryItem item) {
+        try {
+            File file = FileUtil.getFile(item.getRawDataPath());
+            if (file.exists()) {
+                file.delete();
+            }
+            MainActivity.getInstance().db.execSQL("delete from offline_surveillance where raw_data_path='"+item.getRawDataPath()+"'");
+        }
+        catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    public boolean hasMoreOfflineSurveillance() {
+        boolean hasMore = false;
+        String sql = "select count(*) from offline_surveillance order by create_time ";
+        Cursor c = MainActivity.getInstance().db.rawQuery(sql, new String[]{});
+        if (c.moveToFirst()) {
+            hasMore = c.getInt(0) > 0;
+        }
+        return hasMore;
+    }
+
+    /**
+     * 鍔犺浇OfflineSurllance琛�
+     * @return
+     */
+    public List<OfflineSurveillance>  getSurveillanceList(){
+        String sql="select surveillance_id,raw_data_path,camera_in_or_out,create_time,device_id from offline_surveillance limit 0, 10";
+        List<OfflineSurveillance> list=new ArrayList<OfflineSurveillance>();
+        OfflineSurveillance result=null;
+        Cursor c =MainActivity.getInstance().db.rawQuery(sql,new String[]{});
+        String deviceCompanyId = BaseApplication.getInstance().getAndroidDevice().getCompanyId();
+        String deviceId = BaseApplication.getInstance().getAndroidDevice().getDeviceId();
+        while (c.moveToNext()) {
+            result=new OfflineSurveillance();
+            result.setDeviceCompanyId(deviceCompanyId);
+            result.setDeviceId(deviceId);
+            result.setCameraInOrOut(c.getString(c.getColumnIndex("camera_in_or_out")));
+            result.setCreateTime(c.getString(c.getColumnIndex("create_time")));
+            result.setRawDataPath(c.getString(c.getColumnIndex("raw_data_path")));
+            result.setSurveillanceId(c.getString(c.getColumnIndex("surveillance_id")));
+            list.add(result);
+        }
+        return  list;
+    }
+
+    //鍒犻櫎宸蹭笂浼犵粰鏈嶅姟鍣ㄧ殑鏁版嵁
+    public void delSurllanceList(List<OfflineSurveillance> list){
+        for (OfflineSurveillance item : list) {
+            String sql="delete from offline_surveillance where 1=1 and surveillance_id='"+item.getSurveillanceId()+"'";
+            MainActivity.getInstance().db.execSQL(sql);
+        }
+    }
+
+    //鑾峰彇鏈悓姝ユ暟鎹�绘暟
+    public int  getSynDataCount(){
+        String sql="select count(*) from offline_surveillance";
+        Cursor c =MainActivity.getInstance().db.rawQuery(sql,new String[]{});
+        c.moveToFirst();
+        return c.getInt(0);
+    }
 }

--
Gitblit v1.8.0