2015-12-03 113 views
0

我使用Android設備的唯一ID作爲生成RealmConfiguration的加密密鑰。如何刪除領域文件,如果缺少加密密鑰

我發現一個問題,即在應用程序出廠重置或生根後或其他情況下,唯一標識會發生變化。

這意味着加密密鑰是不一樣的,當我重新生成新的加密密鑰RealmConfiguration並嘗試獲得領域實例,然後我得到了錯誤「非法參數:境界文件的格式無效

我不想在應用程序或服務器中永久存儲唯一標識。因爲它需要更多的邏輯來處理不同的唯一ID。所以我想刪除Realm文件來清除狀態並使用當前的新加密密鑰。

但在Realm當前版本(0.85.1)中,我發現deleteRealm方法需要RealmConfiguration。

如何在缺少加密密鑰的情況下刪除領域文件,或者唯一的方法來存儲加密密鑰?

回答

0

Realm文件只是文件系統上的文件,所以簡單的方法是使用java.io.File.delete()簡單地刪除文件 - 也許你可以捕獲異常並刪除文件?

+0

據我所知,領域文件存儲在/ data/data/packagename/files中,所以我無法直接刪除沒有根目錄的文件。 –

+0

你也可以嘗試使用'Realm.deleteRealm()'。 – geisshirt