[英]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.