Я хочу читать (только) записи из data / data / com.android.providers.telephony / database / mmssms.db (я не знаю официального API и т. Д., Но поскольку у него нет официального API, я должен это сделать).Я думал, что могу сделать это, как написано Как получить доступ к существующей базе данных sqlite в Android? в последнем ответе, просто
SQLiteDatabase db = SQLiteDatabase.openDatabase("data/data/com.android.providers.telephony/databases/mmssms.db ", null, 0);
, но система не может открыть эту БДфайл.Затем я подумал, что мне, возможно, придется создать полноценный класс DB Helper
package com.test.dbaccess;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DbAdapterMms
{
private final Context ctx;
private DatabaseHelper dbHelper;
public SQLiteDatabase db;
private static class DatabaseHelper extends SQLiteOpenHelper
{
private final Context ctx;
DatabaseHelper(Context context)
{
super(context, "data/data/com.android.providers.telephony/databases/mmssms.db", null, 1);
this.ctx = context;
}
@Override
public void onCreate(SQLiteDatabase db)
{
//do nothing, this should exist
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
//do nothing, reading only
}
}
public DbAdapterMms(Context context)
{
this.ctx = context;
}
public void open()
{
dbHelper = new DatabaseHelper(ctx);
db = dbHelper.getReadableDatabase();
}
public void close()
{
dbHelper.close();
}
}
Это все еще не работает, на этот раз я думаю, что это может быть проблемой в вызове super ();с тех пор там должна быть дана DBVersion.Версия, которую я не знаю, я просто хочу прочитать существующую базу данных.Не может быть ракеты ...
Любая помощь?Спасибо, А.