生成设备特定的序列号
生成设备特定的序列号
这个问题已经有答案了:
我想能够为每个Android设备生成唯一的序列号,以用于解锁应用程序。我该如何做到这一点?
编辑:
原因是我想完善一个付费应用程序,并为为旧版本付费的用户(这将具有不同的包名)提供一种通过下载可以解锁的免费版本应用程序来获得完整版的方法。我将向旧版本推送更新,生成并显示他们可以输入的代码,以将免费版本转变为完全功能版本。
admin 更改状态以发布 2023年5月22日
为什么不使用谷歌账号名呢?它很容易获取,并且只需要在清单文件上进行简单的申请。他们应该已经购买了Gplay许可证,因此G+账户名应该足够…
在清单文件中:
...
获取账户名:
AccountManager am = AccountManager.get(this); // "this" references the current Context Account[] accounts = am.getAccountsByType("com.google");
获取名称:
accounts[0].name
我写了个简单的警报来确保我在这里找到了一个账户,以下是整个代码:
Account[] accounts = am.getAccountsByType("com.google"); AlertDialog.Builder miaAlert = new AlertDialog.Builder(this); miaAlert.setTitle("i found an account name!"); miaAlert.setMessage(accounts[0].name); AlertDialog alert = miaAlert.create(); alert.show();
您可以使用 Android ID。这个 ID 应该是设备唯一的,但它是如何设置的取决于设备制造商的实现。
String deviceId = Secure.getString(context.getContentResolver(),Secure.ANDROID_ID);
Android ID 可能会在手机出厂重置时更改,用户也可以在 Root 的手机上更改它。但如果您需要一个 ID 来标识您的用户,那么这应该没问题。