addAccountExplicitly抛出IllegalStateException异常引起的抛出

2019-07-03 12:03发布

使用此代码抛出异常,并且不添加创建的帐户为客户经理。

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

任何想法,为什么它是怎么引起的?

//编辑:java.lang.SecurityException异常:由主叫方造成10035 UID比认证的UID不同

Answer 1:

你尝试设置权限的清单,我怀疑你可能需要这个?

<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>


Answer 2:

对于文档AddAccountExplicitly说:

这种方法需要调用者持有许可AUTHENTICATE_ACCOUNTS,并有相同的UID所添加的帐户的身份验证。

引发的抛出:SecurityException解释该问题,正在试图添加的帐户的应用程序的UID是从认证的UID不同。 换句话说,他们是两个不同的应用程序。

如果你想这两个是独立的应用程序,你可以确保你分享他们之间的UID。 见安卓:此页面的sharedUserId节有关如何做的更多的信息。



文章来源: addAccountExplicitly throws IllegalStateException caused by Securityexception