addAccountExplicitly генерирует исключение IllegalStateException, вызванное Securityexception

Использование этого кода вызывает это исключение и не добавляет созданную учетную запись в диспетчер учетных записей.

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: uid вызывающего абонента 10035 отличается от uid аутентификатора


person DarkKnightCZ    schedule 01.11.2012    source источник
comment
Дубликат stackoverflow.com/questions/3774282/?   -  person Ed Burnette    schedule 02.05.2013


Ответы (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>
person brux    schedule 04.11.2012
comment
да, это не проблема с разрешениями, я только что понял, что забыл добавить сообщение об ошибке, отредактировал первую тему - person DarkKnightCZ; 06.11.2012

Документация для AddAccountExplicitly скажите:

Этот метод требует, чтобы вызывающий абонент имел разрешение AUTHENTICATE_ACCOUNTS и имел тот же UID, что и аутентификатор добавленной учетной записи.

Возникающее исключение SecurityException объясняет проблему: UID приложения, которое пытается добавить учетную запись, отличается от UID аутентификатора. Другими словами, это два разных приложения.

Если вы хотите, чтобы эти два приложения были отдельными приложениями, убедитесь, что у них общий UID. Дополнительную информацию см. В разделе android: sharedUserId на этой странице. информация о том, как это сделать.

person nibarius    schedule 26.11.2012