我需要唯一标识一个Android设备。我阅读了有关ANDROID_ID的信息,但Android 2.2似乎有问题。然后还有其他与TelephonyManager相关的标识符,但我认为它们不适用于平板电脑。
因此,在寻找适用于每台设备的东西时,我偶然发现了GSF ID KEY(Google服务框架ID)。你们认为这是一个可靠且始终有效的解决方案吗?
这是我找到的用于检索GSF ID KEY的代码:

private static String getGsfAndroidId(Context context)
{
    Uri URI = Uri.parse("content://com.google.android.gsf.gservices");
    String ID_KEY = "android_id";
    String params[] = {ID_KEY};
    Cursor c = context.getContentResolver().query(URI, null, null, params, null);
    if (!c.moveToFirst() || c.getColumnCount() < 2)
        return null;
    try
    {
        return Long.toHexString(Long.parseLong(c.getString(1)));
    }
    catch (NumberFormatException e)
    {
        return null;
    }
}

最佳答案

如果有人想知道这种方法是否可行,答案是肯定的,我尝试了一下(并将其用于我在Android市场上转换的具有数千次下载的应用程序中),并且可以使用。注意:每次用户恢复出厂设置或使用Google Services时,GSF ID KEY都会更改,但这足以满足我的目的。

关于android - GSF ID KEY(Google服务框架ID)作为Android设备的唯一标识符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22743087/

10-10 18:24