每个 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);
这将保持不变,直到设备被擦除,这是一种罕见的情况...
我正在开发一个 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);
这将保持不变,直到设备被擦除,这是一种罕见的情况...