Android 我可以为数据库使用硬编码路径吗?
为了找到数据库的路径以打开它,我编写了以下行:Android 我可以为数据库使用硬编码路径吗?,android,database,filepath,Android,Database,Filepath,为了找到数据库的路径以打开它,我编写了以下行: private static final String DB_PATH = "/data/data/com.example.FMF/databases/"; 目前,它提出了一个警告说: Do not hardcode "/data/"; use Context.getFilesDir().getPath() instead 我的问题是硬编码版本能在实际设备上工作吗?如果没有,我如何实现另一种方法 我的问题是硬编码版本能在实际设备上工作吗 很多,
private static final String DB_PATH = "/data/data/com.example.FMF/databases/";
目前,它提出了一个警告说:
Do not hardcode "/data/"; use Context.getFilesDir().getPath() instead
我的问题是硬编码版本能在实际设备上工作吗?如果没有,我如何实现另一种方法
我的问题是硬编码版本能在实际设备上工作吗
很多,但不是全部。它肯定不会在Android 4.2+平板电脑上运行,因为Android 4.2+平板电脑上的应用程序是由拥有二级帐户或受限个人资料的人运行的
如果没有,我如何实现另一种方法
步骤1:从源代码中删除DB\u路径
第2步:由于不再定义
DB_PATH
,因此现在出现编译错误的任何地方,都要修改代码以构建数据库文件的路径,这是一种在任何上下文
上都可用的方法,例如活动
,目前它可能在大多数设备上工作,但不能保证它会继续工作。为什么你不能从你的帖子中尝试建议的替代方案呢?你不应该在其他问题上使用硬编码方法,比如非参数化语句、数据库路径、文件和sd卡上的文件。它可以在某些设备上工作,但不能在所有设备上工作。它还取决于设备使用的API版本。为什么还要使用路径?你通常都不需要它。那么我就在那里写getDatabasePath()好吗?@user2957710:getDatabasePath()
接受一个字符串
参数,它是你的数据库文件的名称,它会向你返回该数据库文件应该驻留的完整路径。是的,我知道了,但是我实际上写什么呢?我有一行代码来打开数据库:rDb=SQLiteDatabase.openDatabase(mPath,null,0);其中mPath是路径,那么我应该将mPath更改为什么呢?@user2957710:您可以将其替换为调用getDatabasePath()
的结果。或者,您根本不使用openDatabase()
,而是使用SQLiteOpenHelper
。