每个 Android 设备的唯一标识,包括 gsm 和非 gsm

Unique identity for every Android device, Both gsm and non-gsm

我正在开发一个 android 应用程序项目,该项目需要为每台运行该应用程序的设备激活。 在 Windows PC 上,我知道一些解决方案,例如使用 HDD 的序列号作为激活过程的唯一标识符。

但是我需要一种方法可以在 Android 不支持 SIM 卡的设备上使用,所以这些设备没有 IMEI 序列号。

最好说我需要所有 Android 设备的唯一因素,支持和不支持 SIM 卡。

问候 阿塔

您可以使用设备 ID 作为激活的唯一标识符。如果设备有 imei,你可以使用它或者你可以使用 build serial,下面的代码将帮助你

   /**
 * Fetch the device IMEI number.
 *
 * @param context Calling context
 * @return IMEI number as string.
 */
public static String getDeviceImei(Context context) {
    TelephonyManager telephonyManager = (TelephonyManager) context
            .getSystemService(Context.TELEPHONY_SERVICE);
    return telephonyManager.getDeviceId();
}

/**
 * To get the device Id either in terms of IMEI number (For GSM phones) or Build.SERIAL for
 * non-GSM phones/tablets.
 *
 * @param context Calling context
 * @return Device Id.
 */
public static String getDeviceId(Context context) {
    String deviceId = getDeviceImei(context);
    if (TextUtils.isEmpty(deviceId)) {
        deviceId = Build.SERIAL;
    }
    return deviceId;
}

您也可以尝试使用此代码

进口android.provider.Settings.Secure;

私有字符串android_id = Secure.getString(getContext().getContentResolver(), Secure.ANDROID_ID);

这将保持不变,直到设备被擦除,这是一种罕见的情况...