从另一个应用程序访问sqlite

时间:2015-05-05 15:46:22

标签: android performance sqlite

我在我的应用程序中使用sqlite,我创建了另一个应用程序,其中包含我的第一个应用程序的配置,仅更新我的主应用程序的sqlite选项。但我无法访问相同的sqlite数据库。

如果我使用配置应用程序并执行更新查询,我的数据库会更新,但仅限于配置应用程序。例如IP,我需要在配置中更新我的主应用程序的IP。

我在我的两个应用程序中使用了同一个类。

public class BDCore extends SQLiteOpenHelper {
    private static final String DB_NAME = "NewPointerBI";
    private static final int DB_VERSION = 3;

    public BDCore(Context ctx){
        super(ctx, DB_NAME, null, DB_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL("create table user(code integer primary key, ip text not null");


    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub
        db.execSQL("drop table user;");
        onCreate(db);

    }


}

并使用同一个类进行访问:

public class DBLiteConnection {
    private SQLiteDatabase db;

    public DBLiteConnection(Context ctx){
        DBCore dbcore = new DBCore(ctx);
        db = dbcore.getWritableDatabase();
    }

    public DBLiteUser search() {
        DBLiteUser user = new DBLiteUser();
        String[] columns = new String[]{"code", "ip"};
        Cursor cursor = db.query("user", columns, null, null, null, null, null);
        if (cursor.getCount() > 0) {
            cursor.moveToFirst();
            user.setCode(cursor.getInt(0));
            user.setIp(cursor.getString(1));
        }
        return user;
    }

    public void updateconfig(int code, String ip){
        ContentValues values = new ContentValues();
        values.put("ip",ip);
        db.update("user", values, "code = "+code, null);
    }

    public void insertdata(int code){
        ContentValues values = new ContentValues();
        values.put("code",1);
        values.put("ip","xxx.xxx.xxx");
        db.insert("user", null, values);
    }
}

1 个答案:

答案 0 :(得分:2)

您需要使用内容提供商在应用之间传输数据。