是否有任何类型的接触变量在ROM闪烁或出厂重置之间持久存在?我创建了一个应用程序,用于查找联系人ID,但显然是在出厂重置或新ROM(以及设备之间)同步时更改。我需要存储一个唯一的标识符。请帮忙。谢谢。
答案 0 :(得分:0)
如果你在谈论SIM数据,也许你可能会想出一些东西。但是,如果你正在讨论一个唯一的标识符,我知道的唯一有效方法是生成一个UUID密钥并在本地和外部存储它,正如Reto Meier在Google I / O 2011中所建议的那样。这是我的片段(别介意我的javadoc)风格^^);
/**
* This is just a local solution. For world-wide usage,
* backup on a cloud is encouraged.
*
* @reference Reto Meier - Google I/O 2011
*
* @param context for accessing related shared preferences file
* @return unique id
*/
public synchronized static String getUniqueId(Context context)
{
String uniqueID;
//Open shared preferences file for PREF_UNIQUE_ID
SharedPreferences sharedPrefs = context.getSharedPreferences(PREF_UNIQUE_ID, Context.MODE_PRIVATE);
//Fetch id, if any.
uniqueID = sharedPrefs.getString(PREF_UNIQUE_ID, null);
//If no id saved into shared preferences before generate new one
if(uniqueID == null)
{
uniqueID = UUID.randomUUID().toString();
Editor editor = sharedPrefs.edit();
editor.putString(PREF_UNIQUE_ID, uniqueID);
editor.commit();
}
return uniqueID;
}