2013-11-27 89 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

相關問題