【问题标题】:Privacy changes in Android 10 for IMEIAndroid 10 中的 IMEI 隐私更改
【发布时间】:2020-04-20 12:58:33
【问题描述】:

我了解到 Android 10 的隐私更改,我很清楚第三方应用现在无法获取 IMEI。 但是documentation 的一件事让我很困惑。

他们说

如果您的应用面向 Android 9(API 级别 28)或更低版本,并且该应用具有 READ_PHONE_STATE 权限,则该方法会返回 null 或占位符数据。否则,会发生 SecurityException。

这意味着在 API LEVEL 28 或更低的 Android 设备上,此方法返回 nullplaceholder 数据,即使应用程序具有 READ_PHONE_STATE 权限。对吧?

但是我已经在我的应用程序上测试了这个东西,目标是API LEVEL 28,我仍然可以通过以下方式获得IMEI number

if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
            fragment.requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_CODE);
 }
 TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
 String deviceId = telephonyManager.getImei();

它不应该给我发送NULL 或占位符(垃圾)数据吗?

有什么想法吗?还是我误解了?

【问题讨论】:

    标签: android permissions imei


    【解决方案1】:

    你误解了它。文档说的是:

    如果您的应用程序以 Android 9(API 级别 28)或更低版本为目标,那么当在 Android 10 设备上运行时,它将返回 null 或占位符数据。

    文档在此处描述了它在 Android 10 上的行为,以防您不针对 Android 10。这样应用程序不会突然以奇怪的方式中断,尽管没有更新。它对 Android 9 设备没有影响(以及在模拟 Android 9 设备的模拟器上,这可能是您在以 API 级别 28 为目标时测试它的工具)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-03
      • 2022-10-06
      • 2014-01-10
      • 1970-01-01
      • 2020-04-02
      • 1970-01-01
      • 1970-01-01
      • 2020-01-30
      相关资源
      最近更新 更多