为什么 GeneXus 在我的 Android 应用程序中使用 READ_PHONE_STATE 权限?

Why GeneXus is using the READ_PHONE_STATE permission in my Android app?

所以我在 Play 商店中有一个使用 GeneXus 生成的应用程序,我收到了来自商店的以下电子邮件:

[...] Policy issue: Google Play requires developers to provide a valid privacy policy when the app requests or handles sensitive user or device information. Your app requests sensitive permissions (e.g. camera, microphone, accounts, contacts, or phone) or user data, but does not include a valid privacy policy. [...]

所以我去了开发者控制台,在隐私政策部分找到了这个(翻译自葡萄牙语):

Your app have an APK with the version code 40 thar require these permissions: android.permission.READ_PHONE_STATE. Using these permissions in an APK require a privacy police.

所以我的问题是:我在 GeneXus 中使用什么需要此权限?我从 ClientInformation 对象获取 NetworkId,是吗?

是的,正是这个原因。获取 IMEI 号码(以及 GeneXus 应用程序调用获取它)的 Android method 需要 READ_PHONE_STATE 权限才能执行。这是可以理解的,因为它被认为是私人信息。

遵循 Android 的 Best Practices for Unique Identifiers 我建议改用 ClientInformation.Id 属性。作为奖励,它不会在设备擦除后持续存在,这在 99% 的情况下是预期的行为(除非该应用程序仅安装在受控设备中,如果它在 Play 商店中发布,情况似乎并非如此).

如果您决定走这条路,请记住将请求时发送设备信息 属性 重置为 false。

(注意:自 GeneXus 15 U3 起,属性 名称已 been/will 更改为 在客户端信息中包含网络 ID ,因为旧名称很容易混淆)。