问题
I have implemented a sync adapter in my app which requires an account to be added in the device account settings. I followed the same approach given in the Android docs. It works fine till Marshmallow and I can see my account listed in the device accounts. But in Android N preview, account does not add to the device accounts. AccountManager's addAccountExplicitly() method always returns false. Has anyone faced this problem?
回答1:
Not sure if this is the same issue, but there's an issue with AccountManager on the current version of the Android N image. Basically, if you:
- Add an account to AccountManager
- Uninstall the app
- Reinstall the app
- Try to add account again
This will fail and you'll see the following in the log:
W/AccountManagerService( 1503): insertAccountIntoDatabase: Account {name=foo@bar.com, type=com.foo.bar}, skipping since the account already exists
This is a known issue and it's been reported to Google: https://code.google.com/p/android/issues/detail?id=210992 https://code.google.com/p/android/issues/detail?id=210951
回答2:
I have totally the same issue.
I could fix it by manually going to the application settings and enabling Сontacts permission. I don't know how, but after that I was able to use addAccountExplicitly()
method without issues. I even disabled that permission again and cleared app data but it still was working properly...
After app was reinstalled - problem appeared again.
回答3:
Has this been fixed now in the latest Android N release.
来源:https://stackoverflow.com/questions/37406666/accountmanager-does-not-add-custom-account-in-android-n-preview