Android AccountManager in apps: uninstalling the first app that registered an account leads to account deletion?

What we want to achieve: a one-time subscription application for subscribers

We have 2 applications (Appendix A and Appendix B) that we would like to share with the same user account. That is, when a user enters Appendix A, they will automatically register in Appendix B, and vice versa.

What have we done

We created our own authenticator (extension AbstractAccountAuthenticator, etc.) to extract authentication tokens from our service so that users enter our applications.

We pulled the authenticator into two different applications (app A and app B), which we wanted to share accounts with.

We installed application A and logged in. Then we installed application B and saw that we were automatically logged in. Yay

HOWEVER, when we uninstalled app A (the first app we installed), we saw the following message:

03-20 16:43:27.057 862-862/? W/AccountManagerService: deleting account username@blah.com because type com.example.app.a registered authenticator no longer exist.

and saw that we would exit application B, and the account disappeared from the accounts.

Question: Is the only registered account authenticator the first one installed? Is there no way to return to the account authenticator in application B if application A is deleted?

(fyi: we saw that the installation sharedUserIdsolves this problem, but our applications currently live, so changing their userId is not an option)

+4
1

, Google , APK:

- [account], - . , , , . .

APK. , , . , Google Play . , , , .

APK , A / B. , , . , , .

0

Source: https://habr.com/ru/post/1672803/


All Articles