使用此代码会抛出该异常,并且不会将创建的帐户添加到客户经理。
AccountManager am = AccountManager.get(activity);
Account acc = new Account(name,activity.getString(R.string.account_type));
am.addAccountExplicitly(acc,"Password",null);
我已经遵循了这一点 - http://developer.android.com/training/id-auth/custom_auth.html
知道原因造成的吗?
// edit:引起:java.lang.SecurityException:调用者uid 10035与身份验证者的uid不同
答案 0 :(得分:2)
您是否尝试过在清单中设置权限,我怀疑您可能需要这个?
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"></uses-permission>
<uses-permission android:name="android.permission.GET_ACCOUNTS"></uses-permission>
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"></uses-permission>
<uses-permission android:name="android.permission.USE_CREDENTIALS"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
答案 1 :(得分:1)
AddAccountExplicitly的文档说:
此方法要求调用者保留权限 AUTHENTICATE_ACCOUNTS并且与添加的帐户具有相同的UID 认证器。
抛出的SecurityException解释了问题,尝试添加帐户的应用程序的UID与身份验证器的UID不同。换句话说,它们是两种不同的应用。
如果您希望这两个应用程序是独立的应用程序,您可以确保在它们之间共享UID。有关如何执行此操作的更多信息,请参阅android:sharedUserId section of this page。