2015-12-03 71 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