1

可能重复:
平板电脑的设备 IMEI 锁定

有没有办法通过使用 IMEI 号来锁定我的 android 应用程序。我想这样做是因为我不想让我的应用程序的用户通过将 APK 发送到其他设备来共享它。

4

4 回答 4

3

apk 本身无法锁定给付费用户,直到 JellyBean。从 JellyBean 开始,付费应用程序被加密并存储在手机上。

这是Screencast应用程序似乎使用的解决方案。当您购买它时,他们会将您的身份存储在他们的服务器中。每次您打开应用程序时,他们都会在继续之前再次验证您的身份。问题是,当然,如果没有连接到网络,即使是注册用户也无法使用它。

于 2012-07-18T12:52:36.040 回答
1
public String getSimSerialNumber(){
    TelephonyManager tm = (TelephonyManager)this.getActivity().getSystemService(this.getActivity().TELEPHONY_SERVICE); 
    String number = tm.getSimSerialNumber();
    return number;
}

这可能对您有帮助。您还可以使用Android 的 TelephonyManager获取其他数据。

于 2012-07-18T12:46:36.017 回答
1

据我所知,您的应用程序包无法自行修改。因此,如果没有一些外部服务器来验证锁定,使用任何唯一 ID 将其“锁定”到当前安装是毫无意义的。否则,用户可以重新安装,应用程序将读取 IMEI 并锁定。用户清除了“应用程序数据”,您的应用程序认为它是新安装的。

如果您事先知道 IMEI(例如从注册表单中),您可以为每个用户编译个人版本的应用程序,将 IMEI 硬编码在里面并在启动时检查。

于 2012-07-18T12:49:43.403 回答
1

请阅读这篇博文。IMEI 不是识别特定设备的安全方法。

http://android-developers.blogspot.de/2011/03/identifying-app-installations.html

  • 仅 WIFI 的设备不会有 IMEI
  • 重置后,IMEI 保持不变。所以卖设备是个问题
  • 有时查询IMEI的功能会返回垃圾
  • 您需要在您的应用中获得额外的权限 (READ_PHONE_STATE)

不幸的是,谷歌没有为这个问题展示“最佳实践”的方式......

于 2012-07-18T12:50:16.440 回答