我写了下面的线,以找到,以打开数据库的路径:我可以为数据库使用硬编码路径吗?
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+平板电脑上运行,其中的应用程序正由有人使用辅助帐户或受限个人资料运行。
如果不是如何实现其他的方法?
第1步:从源代码删除DB_PATH
第2步:无处不在,你现在有编译错误,因为你不再定义DB_PATH
,修改代码以建立一个数据库文件via getDatabasePath()
的路径,可用于任何Context
的方法,例如Activity
。
我只是写有getDatabasePath()吗? – user2957710
@ user2957710:'getDatabasePath()'接受一个'String'参数,它是数据库文件的名称,它返回数据库文件应该驻留的位置的完整路径。 – CommonsWare
是我得到的,但我该怎么写其实我也行打开数据库: – user2957710
目前它可能适用于大多数设备,但并不能保证它会继续。为什么你不能从你的帖子中尝试建议的替代方案? –
您不应该在另一个问题中使用硬编码方法,如非参数化语句,数据库路径,SD卡上的文件和文件。它可能在一些设备上工作,但不是全部。它也取决于设备使用的API版本。 – Sajmon
为什么你会使用路径?你通常不需要它。 – njzk2