如何获得android设备的唯一id?

如何获得android设备的唯一id?,android,Android,我正在构建一个android应用程序 我希望我的应用程序不能被复制 在WINDOWS中,我可以这样做: 从此命令行获取cpu id: wmic cpu get processorid 加密此代码并将其保存到数据库中 每次打开软件时,它都会检查cpu代码和数据库中的代码。因此,当软件复制到另一台PC时,它会说: 加密代码和您的cpu代码不匹配 我在android和OOPS中搜索这个命令,没有任何东西可以100%工作。 真的,我不需要只使用这种方式(获取设备ID并保存它,然后…),如果你知道另

我正在构建一个android应用程序 我希望我的应用程序不能被复制

在WINDOWS中,我可以这样做:

  • 从此命令行获取cpu id:

    wmic cpu get processorid 
    
  • 加密此代码并将其保存到数据库中

  • 每次打开软件时,它都会检查cpu代码和数据库中的代码。因此,当软件复制到另一台PC时,它会说:
    加密代码和您的cpu代码不匹配

  • 我在android和OOPS中搜索这个命令,没有任何东西可以100%工作。
    真的,我不需要只使用这种方式(获取设备ID并保存它,然后…),如果你知道另一种方式来完成这项工作(我希望我的应用程序不能被复制),那么就这么说

    也许可以说我的想法还没有完成:
    在我的网站上使用唯一用户名创建购买此应用程序的表单。
    用户购买此应用程序后,将为其下载。
    每次用户想要打开应用程序时,它都会连接到服务器,看看用户是否可用。该应用程序将为他工作,并使他的用户在下次在另一台设备上打开时不可用(不,我不能这样做,因为两台安卓设备之间没有区别,我也没有唯一的ID);否则它就无法工作

    UPD1:罐头
    有效吗?

    String android=Secure.getString(this.getContentResolver(),Secure.android)

    您应该生成自己的uuid。

    IMEI、mac地址、序列号、安卓ID都有问题


    改为使用
    java.util.UUID

    IMEI编号是唯一的,我认为它不是唯一的,因为它在搜索后“工厂重新启动”后会被更改;现在我知道UUID不是我想要的。我希望它具有唯一的id,用于一个不会更改的设备。UUID取决于时间和随机数,是的。您应该管理该uuid(即,在第一次启动时生成并保存(您的服务器等)uuid,然后恢复并稍后检查)。Android中没有真正唯一的数字,我可以在何处保存此代码?请注意,如果用户将程序复制到另一个设备,它必须不打开。我希望用户在注册后可以在没有internet的情况下打开该程序。