【问题标题】:How to get the phone user's name?如何获取电话用户的姓名?
【发布时间】:2021-03-05 02:45:02
【问题描述】:

我的应用程序需要用户的显示名称。在系统设置的用户部分下,我可以看到我的名字。这对我的应用程序来说很好。我怎样才能得到那个或类似的字符串?

我在 Stack Overflow 上找到的一些关于如何执行此操作的建议对我不起作用。

  • AccountManager 只返回我不需要的电子邮件地址。
  • ContactsContract.Contacts 仅包含其他人的数据。
  • ContactsContract.Profile 好像是空的。
  • ContactsContract.Data 不包含我需要的那个名字。
  • 我不会使用 oAuth 或此类登录服务。我的应用不需要帐户管理,它只需要手机所有者的姓名。

【问题讨论】:

  • 出于安全原因,未经帐户许可,您无法获取手机用户名
  • @ShriyanshGautam 该应用请求GET_ACCOUNTSREAD_CONTACTS 权限,这两个+READ_PROFILE 都列在清单中。
  • 仍然要获取用户名,您需要实现 Google 登录 developers.google.com/identity/sign-in/android/people
  • @ShriyanshGautam 你确定,没有其他选择来获得短名称吗?获取用户的电子邮件很容易,但更危险......

标签: android


【解决方案1】:

您可以获取具有 GET_ACCOUTNS 权限的用户电子邮件,但要获取用户名,您需要实施一些 OAuth 来访问用户名和其他个人资料信息。

一种方法是使用 Google 登录 developers.google.com/identity/sign-in/android/people

【讨论】:

    【解决方案2】:

    使用String getUserName()方法 返回进行此调用的用户的用户名。此调用仅适用于系统映像上的应用程序;它需要 MANAGE_USERS 权限。

    供参考点击here

    【讨论】:

    • 我无法轻易授予该权限。如果我真的需要,我会使用谷歌登录。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-20
    相关资源
    最近更新 更多