我在尝试支持 android 4.3+ 上的受限配置文件时遇到了问题。我已经设置了身份验证器:
<service
android:name=".account.AuthenticatorService"
android:permission="com.example.MANAGE_ACCOUNTS">
<intent-filter>
<action android:name="android.accounts.AccountAuthenticator"/>
</intent-filter>
<meta-data
android:name="android.accounts.AccountAuthenticator"
android:resource="@xml/authenticator" />
</service>
在authenticator.xml 中:
<account-authenticator
xmlns:android="http://schemas.android.com/apk/res/android"
android:accountType="com.example"
android:icon="@drawable/ic_launcher"
android:smallIcon="@drawable/ic_launcher"
android:label="@string/label"
/>
我得到一个可用帐户的列表并打印它们的类型:
AccountManager am = AccountManager.get(this);
accounts = am.getAccounts();
for (Account account : Accounts) {
Log.d(TAG, account.type);
}
当我以主用户身份运行应用程序时,获取我所有的谷歌帐户、一个 github 帐户、一个保管箱帐户和我的“com.example”帐户。然后我尝试使用受限帐户。
首先我在 AndroidManifest 中添加:
<application
.
.
.
android:restrictedAccountType="com.example">
当我以受限用户身份登录时运行应用程序时,我什么也得不到。列表中根本没有帐户。如果我将 更改restrictedAccountType
为com.google
,我会得到我所有谷歌帐户的列表。
该帐户本身没有问题,因为当用户是“真实”用户时它可以正常工作......我需要做一些额外的事情来将帐户注册为可用于受限配置文件吗?关于该功能的文档充其量是稀缺的......