我寫了下面的線,以找到,以打開數據庫的路徑:我可以爲數據庫使用硬編碼路徑嗎?
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