账户管理员 - "仅系统应用程序被授予权限"

8
我会尽力帮助您进行翻译。以下是您需要翻译的内容:

我正在按照在Android开发者网站上找到的说明进行操作。这些说明要求将以下两行代码添加到清单文件中:

<manifest ... >
    <uses-permission android:name="android.permission.ACCOUNT_MANAGER" />
    <uses-permission android:name="android.permission.INTERNET" />
    ...
</manifest>

问题在于我现在在“ACCOUNT_MANAGER”行上收到一个错误,说“只有系统应用程序才被授予权限”。
我的应用程序不会成为系统应用程序,而我需要对OAuth2服务进行身份验证。任何使用OAuth2的应用程序都需要成为系统应用程序吗?
有人知道如何在不要求我的应用程序成为“系统应用程序”的情况下使用ACCOUNT_MANAGER吗?
我已经查看了this questionthis question。它们说,对于它们列出的权限,错误是一条“虚假”的错误消息。有人知道“ACCOUNT_MANAGER错误是否是虚假消息?我能否像这些其他帖子中的建议那样告诉编译器忽略此错误?

在新版的Android中,请使用ContextCompat.checkSelfPermission。试试看吧。 - Nikola Lukic
你能告诉我们你需要OAuth2是用来做什么的吗?大多数情况下,如果你需要对用户进行身份验证,你可以使用类似于Google登录API这样的东西来从他们现有的账户中进行认证。 - sziraqui
1个回答

2

来自文档

String ACCOUNT_MANAGER

允许应用程序调用AccountAuthenticators。

不适用于第三方应用程序。

只有系统应用程序才能授予ACCOUNT_MANAGER权限。

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

或者,您可以按照这个答案中所述请求MANAGE_ACCOUNTS权限。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接