'/storage/emulated/0/databases/mydb.db'にデータベースファイルを作成するアプリケーションがあり、このDB内にファイルがあります。 このデータベースを開こうとする別のアプリケーションがあります。しかし、私はエラーコード14を取得します。このdbのテーブルをoprnしようとすると、データベースを開くことができませんでした。データベースファイルを開くことができません
public class DataBaseHelper extends SQLiteOpenHelper {
public SQLiteDatabase myDataBase;
public String TABLE_NAME;
// Database Information
static final String DB_NAME = "mydb.DB";
public static final String FILE_DIR = "databases";
private String DB_PATH = Environment.getExternalStorageDirectory()
+ File.separator + FILE_DIR + File.separator + DB_NAME;
public DataBaseHelper(Context context, String name) {
super(context, name, null, 1);
TABLE_NAME = name;
}
public void openDatabase() throws SQLiteException {
String DBPath = DB_PATH + "/" +TABLE_NAME;
myDataBase = SQLiteDatabase.openDatabase(DBPath,null,SQLiteDatabase.OPEN_READWRITE);
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
私はmyDataBase = SQLiteDatabase.openDatabase(DBPath,null,SQLiteDatabase.OPEN_READWRITE);
が作成したファイルのパーミッションをチェックしましたか? 2つの異なるアプリは、常に2人の異なるLinuxユーザーです。 –
私は根ざした電話を使用していません。そのためデフォルトの権限。 –
ContentProviderを作成するか、両方のアプリケーションからアクセス可能なフォルダにデータベースを配置することで、データベースを共有できます(インストールされているすべてのアプリにも潜在的に)。 –