在我的应用程序中,我曾经使用 IMEI 代码锁定应用程序。我的意思是在启动应用程序期间检查设备 IMEI 并将其与允许的设备列表进行比较。如果设备在列表中,用户可以继续工作,否则退出:
public boolean checkIMEI(Activity activity)
{
TelephonyManager tm=(TelephonyManager )activity.getSystemService(Context.TELEPHONY_SERVICE);
if(tm==null)
{
Log.v(TAG, "Can't get telephony service");
new MessageBox(activity, "Can't get telephony service. Forcing shut down!");
return false;
}
//encrypted IMEIs list
String[] vals=activity.getResources().getStringArray(R.array.imeis);
//real device IMEI
String deviceId=tm.getDeviceId();
if(deviceId==null || deviceId.length() < 2)
{
Log.v(TAG, "Looks like emulator - bail out!");
Toast.makeText(activity, "This special version not intended to run in this device!", 5000).show();
return false;
}
boolean valid=false;
for(String val:vals)
{
String imei=Checker.decryptTemp(val); //decrypt IMEIs
if(imei.equalsIgnoreCase(deviceId))
{
valid=true;
break;
}
}
if(!valid)
{
Log.v(TAG, "Invalid device IMEI!");
return false;
}
return true;
}
未配备电话服务的 Android 平板电脑出现问题。所以这些设备没有IMEI。我应该依赖哪个 id?Mac地址还是其他?此外,每次我需要询问潜在用户给我他们的设备 ID 时......他们怎么做?