结合了Android的App id和Device id的唯一ID

时间:2016-03-29 07:06:40

标签: android

如何获取任何应用ID和设备ID组合的唯一ID。例如,一个应用程序的包名称为" com.myapp"并且android设备具有唯一的Id(可以是wifi mac地址,蓝牙id或UDID)。这两者的结合应该是独一无二的。即使我再次卸载并安装应用程序,也应生成相同的ID。如果有一些其他应用程序使用相同的技术并且在同一部手机上,则唯一ID应该与我的应用程序不同,因为它们具有不同的包名称。此外,我应该在不同的手机上为我的同一个应用程序获取不同的ID。

是否有可用于我目的的本机ID?任何帮助都将非常感谢。 TIA。

2 个答案:

答案 0 :(得分:0)

试试这个

public static String getUniqueDeviceId(Context mContext) {
    String device_id = Settings.Secure.getString(
            mContext.getContentResolver(), Settings.Secure.ANDROID_ID);
    if ((device_id == null) || (device_id.equals("9774d56d682e549c"))
            || (device_id.length() < 15)) {
        device_id = new BigInteger(64, new SecureRandom()).toString(16);
    }
    Log.d("device_id", device_id);
    return device_id;
}

答案 1 :(得分:0)

要获取您的设备ID,您应该使用

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String mDeviceID = telephonyManager.getDeviceId();

现在附上您的应用程序包名称以获取应用程序的唯一ID。是的,卸载并重新安装应用程序时,此唯一标识符将保持不变。

不要忘记在清单中添加此权限。感谢@ deepu513的评论。

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>