可能重复:
平板电脑的设备 IMEI 锁定
有没有办法通过使用 IMEI 号来锁定我的 android 应用程序。我想这样做是因为我不想让我的应用程序的用户通过将 APK 发送到其他设备来共享它。
可能重复:
平板电脑的设备 IMEI 锁定
有没有办法通过使用 IMEI 号来锁定我的 android 应用程序。我想这样做是因为我不想让我的应用程序的用户通过将 APK 发送到其他设备来共享它。
apk 本身无法锁定给付费用户,直到 JellyBean。从 JellyBean 开始,付费应用程序被加密并存储在手机上。
这是Screencast应用程序似乎使用的解决方案。当您购买它时,他们会将您的身份存储在他们的服务器中。每次您打开应用程序时,他们都会在继续之前再次验证您的身份。问题是,当然,如果没有连接到网络,即使是注册用户也无法使用它。
public String getSimSerialNumber(){
TelephonyManager tm = (TelephonyManager)this.getActivity().getSystemService(this.getActivity().TELEPHONY_SERVICE);
String number = tm.getSimSerialNumber();
return number;
}
这可能对您有帮助。您还可以使用Android 的 TelephonyManager获取其他数据。
据我所知,您的应用程序包无法自行修改。因此,如果没有一些外部服务器来验证锁定,使用任何唯一 ID 将其“锁定”到当前安装是毫无意义的。否则,用户可以重新安装,应用程序将读取 IMEI 并锁定。用户清除了“应用程序数据”,您的应用程序认为它是新安装的。
如果您事先知道 IMEI(例如从注册表单中),您可以为每个用户编译个人版本的应用程序,将 IMEI 硬编码在里面并在启动时检查。
请阅读这篇博文。IMEI 不是识别特定设备的安全方法。
http://android-developers.blogspot.de/2011/03/identifying-app-installations.html
不幸的是,谷歌没有为这个问题展示“最佳实践”的方式......