3

我面临一些奇怪的问题我有一个安卓应用程序,它允许用户将个人资料详细信息保存在联系人中,例如姓名、电话、电子邮件,此功能在 Android 10 中有效,但在 Android 11 中无效。在 Android 11 中,我能够看到保存的联系人在电话应用程序联系人页面中,但这并未反映在联系人应用程序中。我们在 Android 11 中是否需要任何额外的权限或设置才能完成这项工作?

在此处输入图像描述

联系人保存在手机应用程序联系人页面中

在此处输入图像描述

但未反映在联系人应用程序中

4

2 回答 2

1

在 Android 11 中,该READ_PHONE_NUMBERS权限取代了READ_PHONE_STATE读取联系人信息的权限。

另请参阅:Android 11 中的权限更新

于 2021-09-01T10:28:14.920 回答
1

Android 11 更改了您的应用在读取电话号码时使用的电话相关权限。

如果您的应用面向 Android 11 或更高版本并且需要访问以下列表中显示的电话号码 API,则您必须请求 READ_PHONE_NUMBERS 权限,而不是 READ_PHONE_STATE 权限。

TelephonyManager 类和 TelecomManager 类中的 getLine1Number() 方法。TelephonyManager 类中不受支持的 getMsisdn() 方法。如果您的应用声明 READ_PHONE_STATE 以调用上一个列表中的方法以外的方法,您可以继续在所有 Android 版本中请求 READ_PHONE_STATE。但是,如果您仅对前面列表中的方法使用 READ_PHONE_STATE 权限,请按如下方式更新您的清单文件:

更改您的 READ_PHONE_STATE 声明,以便您的应用仅在 Android 10(API 级别 29)及更低版本上使用该权限。添加 READ_PHONE_NUMBERS 权限。

于 2021-09-01T10:44:16.383 回答