0

在 ROM 闪存或出厂重置之间是否存在任何类型的接触变量?我创建了一个查找联系人 ID 的应用程序,但显然当从出厂重置或新 ROM(以及设备之间)同步时,它会发生变化。我需要存储一个唯一标识符。请帮忙。谢谢你。

4

1 回答 1

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;
}
于 2012-05-13T21:48:32.277 回答