标签: android-sqlite

如何保护 Android 中的 SQLITE 数据库?

目前我正在开发一个Android应用程序,它存储用户的重要数据,例如密码,卡号,网站用户名和密码等。我决定使用SQLITE DB,以便用户的数据可以驻留在他们自己的手机中,并且我计划实施 AES-256 算法 (SQLCiper),以便使用密钥对数据进行加密。但我担心的是它能发挥多大作用,如果有人进行逆向工程或 root 会发生什么?

请帮助我弄清楚这一点。

提前致谢。

sqlite android sqlcipher android-sqlite android-studio

1
推荐指数
1
解决办法
1598
查看次数

如何从列中等于NULL的表中获取数据

我有桌子:

CREATE TABLE Reports (
         _id INTEGER NOT NULL PRIMARY KEY,member_id INTEGER, 
      is_conf BOOLEAN,
         name TEXT, 
      started INTEGER,
finished INTEGER, description TEXT, obj_id INTEGER NOT NULL, FOREIGN KEY (obj_id) REFERENCES Objects (_id));
Run Code Online (Sandbox Code Playgroud) 我想把数据拿到哪里member_id = NULL.
但查询:
String sql = "SELECT _id, name FROM Reports WHERE member_id = NULL";
Cursor cursor = db.rawQuery(sql, null);
Run Code Online (Sandbox Code Playgroud)

不起作用.

sqlite android android-sqlite

0
推荐指数
1
解决办法
482
查看次数

如何解决android中的空白区域?

我是android新手..

我正在使用sqlite数据库.在我的图像数据库中,我有一行.我正在android中正确获取图像.但是数据库中没有图像,而且在我的drawable中,我在图像视图中得到了空白区域.怎么解决这个?任何人帮助我..我的代码中也没有错误.

提前致谢...

android image android-sqlite

0
推荐指数
1
解决办法
107
查看次数

在特定文件夹android上创建sqlite数据库

嗨,我有一个与数据库有关的问题

在我的项目中,我需要在特定的文件夹中建立数据库,所以任何伙伴都可以告诉我哪里错了

此类在以下位置创建数据库 /data/data/package_folder/database_name

我想将其更改为 sdcard/database_folder/database_name

请检查我下面的代码

    package com.example.qrcode.data;
    public class LocalDatabase extends SQLiteOpenHelper {

    public static final int DATABASE_VERSION = 1;

    // database name
    public static final String DATABASE_NAME = "qrcode_database";

    // table name
    public static final String TABLE_NAME = "scan_result";

    // table field name
    public static final String COLUMN_ID = "id";
    public static final String COLUMN_NAME = "scan_url";

    public static final String SAVE_TABLE_NAME = "DEVICE";

    public static final String SAVE_COLUMN_ID = "ID";
    public static final String SAVE_COLUMN_NAME = …
Run Code Online (Sandbox Code Playgroud)

android listview sqliteopenhelper android-sqlite

0
推荐指数
1
解决办法
6381
查看次数

为Android设备实现安全数据库的最佳实践

我用sqlite和使用内容提供程序实现了android数据库.

但我的数据库中的数据未加密.

有没有最好的实践来实现Android设备的安全数据库?

我的意思不仅仅是加密,还包括可以提高我的应用程序安全性的任何技术.

database security android android-sqlite

0
推荐指数
1
解决办法
1050
查看次数

如何在Android SQLite中插入默认值?

我有一个关于在an​​droid中的SQLite数据库表中插入默认值的问题.我有一个DBHandler(显然)负责创建db,表和执行CRUD查询.

但我似乎无法弄清楚的是,如何在表中插入默认值.首先,我尝试使用以下方法在我的DBHandler中插入默认值:

// Write settings to db
public void addSetting(String key, String value) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put(SETTING_KEY, key);
    values.put(SETTING_VALUE, value);
    db.insert(TABLE_APP_SETTINGS, null, values);
    db.close();
}
Run Code Online (Sandbox Code Playgroud)

使用onCreate()方法调用的方法如下:

@Override
public void onCreate(SQLiteDatabase db) {
    // creating tables
    db.execSQL(DATABASE_CREATE);
    db.execSQL(CREATE_TABLE_SETTINGS);

    // insert default values
    this.addSetting("access_admin_fingers", "2");
}
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,这导致应用程序崩溃,给我以下LogCat消息:

02-18 09:43:52.050: W/dalvikvm(14297): threadid=1: thread exiting with uncaught exception (group=0x41f3d930)
02-18 09:43:52.060: E/AndroidRuntime(14297): FATAL EXCEPTION: main
02-18 09:43:52.060: E/AndroidRuntime(14297): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.customerratingsystem/com.customerratingsystem.AdminActivity}: java.lang.IllegalStateException: getDatabase called …
Run Code Online (Sandbox Code Playgroud)

java android android-sqlite

0
推荐指数
1
解决办法
3998
查看次数

使用基本适配器和列表视图显示数据库中的数据

我想将SQLite数据库中的数据显示到我的自定义列表视图中

我的活动:

public class Main_activity extends Activity implements OnItemClickListener{


public static final String[] titles = new String[] { "Strawberry",
    "Banana", "Orange" };

public static final String[] descriptions = new String[] {
    "It is an aggregate accessory fruit",
    "It is the largest herbaceous flowering plant", "Citrus Fruit"
    };


ListView listView;
List<RowItem> rowItems;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_main);


rowItems = new ArrayList<RowItem>();
for (int i = 0; i < titles.length; …
Run Code Online (Sandbox Code Playgroud)

sqlite android listview baseadapter android-sqlite

0
推荐指数
1
解决办法
2万
查看次数

getReadableDatabase()上的NullPointerException

我在一个类(非活动)中有这个方法 -

public boolean usernameChk(String usrname) {

    String usrnmQuery = "SELECT * FROM " + TABLE_ACCOUNTS + " WHERE username = '" + usrname + "'";
    SQLiteDatabase db = this.getReadableDatabase();
    //NullPointerException on line above

    Cursor cursor = db.rawQuery(usrnmQuery, null);
    cursor.close();

    if (cursor.getCount() <= 0) {
        return false;
    } else {
        return true;
    }

}
Run Code Online (Sandbox Code Playgroud)

但是SQLiteDatabase db = this.getReadableDatabase();当我从其他活动中调用此方法时,我在线获取NullPointerException -

private Context context;
this.context = context;
new DatabaseHandler(this);

DatabaseHandler dbz = new DatabaseHandler(context);
boolean z = dbz.usernameChk(username.getText().toString());
Run Code Online (Sandbox Code Playgroud)

这是我的LogCat - …

java database android nullpointerexception android-sqlite

0
推荐指数
1
解决办法
3366
查看次数

Android sqlite语法错误:靠近")"

我在android中创建sqlite db时遇到错误.

我的代码是:

public static final String TABLE_NAME = "user";
    public static final String COL1_USER_ID = "USER_ID";
    public static final String COL2_USER_NAME = "USER_NAME";
    public static final String COL3_IMEI_CODE = "IMEI_CODE";
    public static final String COL4_REGISTRATION_ID = "REGISTRATION_ID";
    public static final String COL5_MOBILE_NUMBER = "MOBILE_NUMBER";

    public static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "(" + _ID + " INTEGER PRIMARY KEY,"+ COL1_USER_ID + TEXT_TYPE + COMMA_SEP + COL2_USER_NAME + TEXT_TYPE
            + COMMA_SEP + COL3_IMEI_CODE + TEXT_TYPE …
Run Code Online (Sandbox Code Playgroud)

java mysql sqlite android android-sqlite

0
推荐指数
1
解决办法
1496
查看次数

SQLlite'没有这样的列'错误仅在全新安装的签名APK中

我找到了问题的原因,见下文!

简而言之,由于备份功能恢复了具有相同版本号的旧数据库方案,因此在我的SQLiteHelperClass中都没有调用onUpdate()或onCreate().

我遇到了一个我无法解决的奇怪问题.当我在模拟器中运行我的应用程序时,一切正常.当我在手机上将其作为apk-debug.apk运行时,一切正常,但当我尝试在手机上将其作为已签名的应用程序运行时,我收到此错误:

Error Code : 1 (SQLITE_ERROR)
Caused By : SQL(query) error or missing database.
(no such column: listId (code 1): , while compiling: SELECT * FROM mytable WHERE listId=100 ORDER BY id,name,conc ASC)
Run Code Online (Sandbox Code Playgroud)

如果我删除设置中的所有应用程序数据并重新运行应用程序,一切都在签名的应用程序版本中工作,尽管它最初是首次安装在手机上!

mytable是通过运行db.execSQL(DATABASE_CREATE_MY_TABLE)创建的:(列名是在其他地方设置的常量)

private static final String DATABASE_CREATE_MY_TABLE = "CREATE TABLE "
    + MY_TABLE + "("             
    + ID + " INTEGER, "
    + LIST_ID + " INTEGER, "
    + NAME + " STRING, "
    + CONC + " REAL, "
    + "PRIMARY KEY (" + ID …
Run Code Online (Sandbox Code Playgroud)

sqlite android android-sqlite

0
推荐指数
1
解决办法
248
查看次数