Android M - GoogleAccountCredential setSelectedAccount 不起作用 - 名称不能为空

标签 android google-play-services android-6.0-marshmallow

在 Android M-Preview 上 GoogleAccountCredential.setSelectedAccount 似乎不起作用。

在调试时,我注意到调用该方法后,对象的selectedAccountaccountName 字段仍然为空。

调试时您可以看到我的变量 accountName 不为空或 null,我调用了 .setSelectedAccountName(),但正如您在调试窗口中看到的那样, GoogleAccountCredential 中的字段仍然为空。

Debugging window code Debugging window debug values

我认为这可能与某些权限有关?在我的 list 上,我声明了以下权限:

<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />

我知道您在 M 上免费获得的 GET_ACCOUNTS 权限(根据 https://developer.android.com/preview/features/runtime-permissions.html#normal ),但其他两个权限对于 M-Preview 是“未知的”。所以也许,就是这样?

最佳答案

android.permission.GET_ACCOUNTS 具有 protectionLevel:dangerous 并且现在是联系人权限组的一部分,这意味着您应该在运行时使用新的 Activity.requestPermissions()

只有这样,您才能与设备上其他应用创建的帐户进行交互。

关于Android M - GoogleAccountCredential setSelectedAccount 不起作用 - 名称不能为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32270036/

相关文章:

android - 在 android 中通过蓝牙发送联系人

安卓6.0 : Get package name of current activity

android - 如何在我的编辑文本中启用翻译上下文菜单?

android - jsonParser.makeHttpRequest json解析报错

java - 重复的 dex 但没有重复的 .jar

android - 层次结构查看器中的“检查屏幕截图”按钮在哪里?

java - 使用 runOnUiThread 获取当前位置

android - FirebaseApp 初始化失败

android - 如何使用 startActivity 以编程方式打开 Google Play 帐户页面

android - ScrollView 内的 PercentRelativeLayout