我知道它是/data/data/ + "packageName" + "/databases/"
中的商店
我在android 4.3中尝试过它并且它是正确的。
但我看到一个代码,说对于Android 4.2路径是不同的。这是对的吗?或两者都相同。
if(android.os.Build.VERSION.SDK_INT >= 4.2){
DB_PATH = context.getApplicationInfo().dataDir + "/databases/";
} else {
DB_PATH = "/data/data/" + ""packageName"" + "/databases/";
}
我试过这个用于Android 4.3,但没有工作:
DB_PATH = context.getApplicationInfo().dataDir + "/databases/";
答案 0 :(得分:1)
SQLite数据库&lt; = Android 4.1,将在/data/data/<your_app_package_name>/
中。但是,您只能访问模拟器和root设备上的该目录。在Android 4.2及更高版本中,内部存储的路径取决于用户帐户。
通常,除非事先指定,否则SQLite数据库存储在
中 /data/data/<your_app_package_name>/databases/<database_name>
您可以通过在模拟器中运行应用程序以及
来查看数据库的存储位置/data/data/<your_app_package_name>/databases
使用getDatabasePath()
查找存储位置。
答案 1 :(得分:1)
但我看到一个代码,说明对于Android 4.2,路径是不同的
不,这段代码并没有说数据库存储在其他地方。它只是一种硬编码方式来获取对数据库存储位置的引用。
如果您想获得对主目录的引用,可以使用活动的getFilesDir()
。它返回一个类型为File
的对象,指向应用程序的files目录。
答案 2 :(得分:1)
Context
具有getDatabasePath(String name)
方法,该方法返回存储使用openOrCreateDatabase创建的数据库的文件系统的绝对路径。它将返回您要查找的路径名称。要获取数据库目录,请将空字符串传递给方法