【问题标题】:How to identify an Android device programmatically? [duplicate]如何以编程方式识别 Android 设备? [复制]
【发布时间】:2013-01-31 17:15:16
【问题描述】:

目前,我使用 MAC 地址作为 Android 设备的标识符。

WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wInfo = wifiManager.getConnectionInfo();
String mac = wInfo.getMacAddress();

但是,我发现 mac 对于某些用户的设备是空的。我有点困惑为什么它可能是空的。

如果你能弄清楚原因,那就最好了!

否则,您能否提供一种替代方法来识别 Android 设备?

【问题讨论】:

  • 为什么要这样做?
  • @iTech 它用于将每个用户的数据存储在数据库中。
  • 获取用户安卓账户怎么样?即email更稳定,如果用户卖掉他/她的手机换了新手机,你仍然可以识别
  • @iTech 如何以编程方式获得它?用户没有电子邮件帐户或从不登录怎么办?
  • 你想在sql中如何存储这些数据。你能再解释一下,以便我们给你更好的答案吗?

标签: android android-wifi


【解决方案1】:

您可以根据imei唯一识别任何安卓手机。

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.getDeviceId();

将权限添加到您的 AndroidManifest.xml:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

在模拟器中,您可能会得到一个类似 0000... 的值。在设备上检查以获取设备 ID。

【讨论】:

  • 不是手机的设备没有唯一的 IMEI 号码。
【解决方案2】:

要找到有关 Android 设备的独特之处,最好的办法是访问其序列号。还有其他几篇关于如何做到这一点的帖子,但观看次数最多的一篇在这里:

How to find serial number of Android device?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    • 2011-02-15
    • 2023-03-09
    相关资源
    最近更新 更多