这样的应用程序可以自由阅读我的电子邮件/日历/消息/文档/等吗?
开发人员也将“在设备上使用帐户”权限称为android.permission.USE_CREDENTIALS。
此类应用程序的示例:WhatsApp,MightyText。
这样的应用程序可以自由阅读我的电子邮件/日历/消息/文档/等吗?
开发人员也将“在设备上使用帐户”权限称为android.permission.USE_CREDENTIALS。
此类应用程序的示例:WhatsApp,MightyText。
Answers:
Android有一个集中式系统,用于管理在线服务(例如您的Google帐户)的凭据。一个组件称为AccountManager
。有些应用程序可以“ 充当帐户验证者 ”。这意味着他们了解如何登录到特定的联机服务,并且可以登录到该服务AccountManager
。其他应用程序希望使用该登录信息来识别您的身份或代表您执行操作,而无需每次都输入密码。
您的手机具有一个内置应用程序,可以“充当帐户验证者”的身份访问您的Google帐户。它知道如何登录Google,并且具有您在设置手机时输入的电子邮件和密码。还有一个YouTube应用程序,它希望登录以显示您喜欢的视频,并让您发表评论,而无需再次输入电子邮件和密码。
这个YouTube应用程式AccountManager
与通话,并询问它是否具有Google帐户的凭证。提出此问题需要“在设备上查找帐户”权限。在AccountManager
安装了手机,它提供咨询服务,回答这个问题对鉴定人的名单。如果它有任何凭据,应用程序会再询问什么被称为的authToken的谷歌帐户。此请求需要“ 在设备上使用帐户 ”权限。
在AccountManager
随后询问您是否要请求的应用程序(YouTube)的,以便能够使用请求的帐户(帐户谷歌)。这可能在应用程序上方显示的对话框中或在通知中。另外,如果您尚未对此问题回答“是”,则该应用程序可以选择不执行任何操作:它可能想稍后在更方便的时间询问。此步骤可确保具有“在设备上使用帐户”权限的应用程序不能不询问就立即使用每个帐户。
如果您同意, AccountManager
请求转发给身份验证器(内置的Google应用)。接下来会发生什么,取决于身份验证器和您要登录的特定服务。如果您以前从未这样做过,则可能需要登录,并且登录可能需要用户名和密码,照片,SMS或完全其他内容。无论身份验证器执行什么操作,它都可能失败,或者将身份验证令牌返回给发出请求的应用程序。
身份验证器和在线服务还可以控制请求的应用程序可以执行哪些操作。例如,当您将一个应用程序连接到您的Google帐户时,Google会列出该应用程序所需的权限(例如YouTube的“上传视频”)。因此,该应用只能执行列出的操作。但是,某些服务可能没有这样的功能。对于此类服务,一旦您允许该应用使用您的凭据,它就可以采取任何措施您的名义。
一旦发出请求的应用程序获得了身份验证令牌,它就可以继续使用它来以您的名义执行操作,而无需您进行任何进一步的交互。也就是说,一旦您同意Dan的Twitter Client可以发布到您的Twitter feed,它可能会在后台运行并在您不知情的情况下发布更多推文。如果您信任,则应仅授予该应用访问您凭据的权限不这样做时,。
具有“ 在设备上使用帐户 ”权限的应用程序一旦安装,就可以要求您以您的名义访问在线服务(例如Google,Facebook或Twitter)。您可以选择是否允许其访问服务。如果您确实允许它访问该服务,则代表该用户执行的操作可能会受到该服务的限制(取决于服务),并且该服务可能会让您稍后撤消该权限(通常通过“已连接的应用程序列表”服务网站上的“)。
我在Android API中找到了可以使用该权限进行操作的示例。
从我的理解作为一个开发者,这个手段获得几乎一切由账户提供,除了更改密码。
一旦用户帐户的道理,他可以访问任何服务的帐户提供:在你的Facebook的墙后,读取您的Gmail -几乎一切。