簡體   English   中英

檢索指紋Blob在運行時使應用程序崩潰,適用於Android的SQLITE

[英]Retrieving a fingerprint Blob is Crashing the app at run time, SQLITE for Android

已記錄以下錯誤

在com.github.omadahealth.lollipin.DatabaseHelper.userFP1(DatabaseHelper.java:400)在com.magtouch.app.gateopen $ 22.onUpCharSuccess(gateopen.java:777)在android_serialport_api.AsyncFingerprint.handleMessage(AsyncFingerprint.java:126)

數據庫功能

public byte[] userFP1(int userID){
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.query(TABLE_USERS, new String[]{FINGER_PRINT1}, USER_ID + "=?", new String[]{String.valueOf(userID)}, null, null, null, null);

        if (cursor != null) {
            cursor.moveToFirst();
        }
        return cursor.getBlob (10  );

    }

代碼調用數據庫

    if(db.userFP1 (i)!=null){
                        System.arraycopy( db.userFP1 ( i ), 0, tmp, 0, 256);
                        if(FPMatch.getInstance().MatchTemplate(model,tmp)>60){
                            tvFpStatus.setText(getString( R.string.txt_fpmatchok));
                            break;
                        }
Section pointed by the error from (AsyncFingerprint.java:126)
if (msg.obj != null) {
                        onUpCharListener.onUpCharSuccess((byte[]) msg.obj);
                    } else {
                        onUpCharListener.onUpCharFail();
                    }

以下代碼為我工作

public byte[] userFP1(int userID){
        SQLiteDatabase db = this.getReadableDatabase ();
        Cursor cursor = db.query(TABLE_USERS, new String[]{FINGER_PRINT1}, USER_ID + "=?", new String[]{String.valueOf(userID)}, null, null, null, null);

        if (cursor.moveToFirst()){
            byte[] imgByte = cursor.getBlob(0);
            cursor.close();
            return imgByte;
        }
        if (cursor != null && !cursor.isClosed()) {
            cursor.close();
        }
        return null;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM