ACCOUNT_MANAGER - "仅授予系统应用权限"

use*_*453 8 android android-studio

我按照Android开发人员的说明进行操作.这些说明将这两行代码添加到清单中:

<manifest ... >
    <uses-permission android:name="android.permission.ACCOUNT_MANAGER" />
    <uses-permission android:name="android.permission.INTERNET" />
    ...
</manifest>
Run Code Online (Sandbox Code Playgroud)

问题是我现在在"ACCOUNT_MANAGER"行上收到错误,说"权限仅授予系统应用程序".

我的应用程序不会是系统应用程序,我需要对OAuth2服务进行身份验证.如何使用OAuth2的任何应用程序都需要成为系统应用程序?

有没有人知道如何使用ACCOUNT_MANAGER而不要求我的应用程序是"系统应用程序"?

我看过这个问题这个问题.他们说,对于他们列出的权限,错误是一个"假的"错误消息.有谁知道'ACCOUNT_MANAGER错误是否是假信息?我可以告诉编译器忽略这些,就像这些其他帖子中的建议一样吗?

szi*_*qui 2

来自文档

字符串 ACCOUNT_MANAGER

允许应用程序调用 AccountAuthenticators。

不供第三方应用程序使用。

ACCOUNT_MANAGER权限只能授予系统应用

如果您的应用程序需要 AccountManager,您可以创建一个 AccountAuthenticator 服务,如本教程中所示

或者您可以按照此答案中的说明请求 MANAGE_ACCOUNTS 权限

MANAGE_ACCOUNTS:API文档对此权限并不太清楚。但根据布莱恩的回答,应用程序只能删除/修改它自己创建的帐户。当然,它可以创建任何新帐户并对其进行管理。