2013-11-27 67 views
-1

我写了下面的线,以找到,以打开数据库的路径:我可以为数据库使用硬编码路径吗?

private static final String DB_PATH = "/data/data/com.example.FMF/databases/"; 

目前,它带有警告过来说:

Do not hardcode "/data/"; use Context.getFilesDir().getPath() instead 

我的问题是能硬编码版本适用于实际设备?如果不是,我如何实施其他方法?

+3

目前它可能适用于大多数设备,但并不能保证它会继续。为什么你不能从你的帖子中尝试建议的替代方案? –

+1

您不应该在另一个问题中使用硬编码方法,如非参数化语句,数据库路径,SD卡上的文件和文件。它可能在一些设备上工作,但不是全部。它也取决于设备使用的API版本。 – Sajmon

+0

为什么你会使用路径?你通常不需要它。 – njzk2

回答

0

我的问题是可以在实际设备上的硬编码版本的工作?

很多,但不是全部。它肯定无法在Android 4.2+平板电脑上运行,其中的应用程序正由有人使用辅助帐户或受限个人资料运行。

如果不是如何实现其他的方法?

第1步:从源代码删除DB_PATH

第2步:无处不在,你现在有编译错误,因为你不再定义DB_PATH,修改代码以建立一个数据库文件via getDatabasePath()的路径,可用于任何Context的方法,例如Activity

+0

我只是写有getDatabasePath()吗? – user2957710

+0

@ user2957710:'getDatabasePath()'接受一个'String'参数,它是数据库文件的名称,它返回数据库文件应该驻留的位置的完整路径。 – CommonsWare

+0

是我得到的,但我该怎么写其实我也行打开数据库: – user2957710

相关问题