当我使用支持包时,是否有方法使用AccountAuthenticatorActivity的片段?AccountAuthenitactorActivity不是FragmentActivity类的子类,因此当我使用Support包时,我不确定如何使用它.
android android-fragments android-authenticator android-account
Google的Android文档(http://developer.android.com/reference/android/accounts/AccountManager.html#addAccountExplicitly(android.accounts.Account,java.lang.String,android.os.Bundle))说:
返回
如果帐户已成功添加,则为True;如果帐户已存在,则为false,帐户为空,或发生其他错误
我变得虚假.具体来说,还有哪些其他错
android android-syncadapter android-authenticator android-account
任何人都可以告诉我如何维护用户登录的会话.例如,当用户登录到应用程序时,除非用户注销或卸载类似于android中的gmail的应用程序,否则他们必须登录.
是否可以将用户设置为手机的默认安全设置用作我的应用程序的锁定或登录机制?我的意思是,当我们重置手机时,它会询问手机密码或图案.
是否有可能使用默认的android密码或用户设置的模式登录我的应用程序?
我的目标是绕过开发工作并使用一些标准的身份验证方式,而不会让用户记住另一个新密码.
注意:我知道我可以以编程方式锁定屏幕.但相反,我想在执行任何关键操作之前使用锁作为验证.(就像设置在重置手机之前要求输入密码一样.)
我在我的应用中实现了同步适配器,需要在设备帐户设置中添加帐户.我遵循Android文档中给出的相同方法.它工作正常,直到棉花糖,我可以在设备帐户中看到我的帐户.但在Android N预览中,帐户不会添加到设备帐户.AccountManager的addAccountExplicitly()方法始终返回false.有人遇到过这个问题吗?
android android-contentprovider android-syncadapter android-authenticator android-account
我有两个使用相同自定义帐户类型的应用.这两个应用程序是完全独立的,只是共享帐户.当其中一个启动时,它会检查现有的自定义帐户,如果未找到任何帐户,则会显示登录页面.
所以我创建了我AccountAuthenticator的图书馆项目并在两个应用程序中引用它.根据本教程:
假设您将验证者的代码复制到了2个应用程序中,从而共享其逻辑,并更改每个应用程序上的登录页面设计以适合其所属的应用程序.在这种情况下,当请求auth-token时,将为两个应用程序调用第一个安装的应用程序的身份验证器.如果您卸载第一个应用程序,将从现在开始调用第二个应用程序的身份验证器(因为它现在是唯一的一个).
当我运行其中一个应用程序(无论哪个应用程序)并调用addAccount它时,它会很好地显示登录页面.然后,当我运行第二个应用程序并且调用addAccount没有任何反应时,并且不会显示登录页面.卸载第一个应用程序后,第二个应用程序正常工作并显示登录页面.那么问题是什么,我该如何解决?
执行addAccount:
mAccountManager.addAccount(accountType, authTokenType, null, null, this, new AccountManagerCallback<Bundle>() {
@Override
public void run(AccountManagerFuture<Bundle> future) {
try {
Bundle bnd = future.getResult();
showMessage("Account was created");
} catch (Exception e) {
e.printStackTrace();
showMessage(e.getMessage());
}
}
}, null);
Run Code Online (Sandbox Code Playgroud)
提前致谢
account android accountmanager android-authenticator android-account
当我在我的应用程序中使用test1@gmail.com登录时.它使用我的电子邮件成功生成帐户
现在我注销并使用不同的电子邮件登录,如test2@gmail.com,然后生成这样的帐户
我想知道哪种方式最好
1)删除第一个帐户并添加第二个帐户
2)如果可以更新,则用第二个帐户更新第一个帐户.
如果我删除并再次添加帐户使用addAccountExplicitly它需要一些时间来创建新帐户,所以我的下一个代码执行,帐户返回null.
是否可以使用帮助更新帐户,updateCredentials如果是,那么如何?
我到底做了什么?
创建包含帐户所需数据的捆绑包
检查帐户是否已存在本地插入的bundle params"global_user_id",如果它已经存在,那么我必须更新用作登录的EMAIL(参见上图).
目前我正在执行,删除旧帐户和添加新帐户,但下一行是SyncAdapter配置,需要帐户.因为添加帐户需要一些时间才能获得NULL.
有没有其他解决方案来更新电子邮件ID?
android accountmanager android-authenticator android-account
我想阅读我通过authenticator xml文件设置的代码首选项.我发现无法访问在Android中的帐户身份验证器中设置的首选项以及如何在Android中的帐户身份验证器中设置的访问首选项完全没有答案,另一个说我需要创建自己的活动.这听起来很奇怪,因为这意味着我可以通过xml配置的首选项是无用的,因为我再也无法读取它们了.那不可能.有人知道更多吗?如果我真的需要创建一个自己的活动,我如何在身份验证器的情况下这样做?
最近我看到 Firebase Crashlytic 在以下方面报告的错误有所增加
Caused by java.lang.SecurityException: uid 10172 cannot explicitly add accounts of type: com.mypackage.account
at android.os.Parcel.createException(Parcel.java:2087)
at android.os.Parcel.readException(Parcel.java:2055)
at android.os.Parcel.readException(Parcel.java:2003)
at android.accounts.IAccountManager$Stub$Proxy.addAccountExplicitly(IAccountManager.java:1660)
at android.accounts.AccountManager.addAccountExplicitly(AccountManager.java:889)
Run Code Online (Sandbox Code Playgroud)
它是从
accountManager.addAccountExplicitly(defaultAccount, null, null)
Run Code Online (Sandbox Code Playgroud)
根据 Firebase Crashlytic 报告,它仅在 Android 9 和 10 以及三星、Realme 和 OPPO 设备上发生
最后,我尝试在 Android P 和 Android 10 设备上进行复制,并且代码没有问题地被触发。
我已经通过 StackOverflow 进行了搜索,例如
Android 应用程序在 addAccountExplicitly(account, password, null) 上崩溃;, Android SecurityException: uid xxxxx 无法显式添加账户, /sf/answers/4101384241/ , /sf/answers/2614423661/ , /sf/answers/1188043391/ /3286489和Android 添加帐户与 AccountManager。
它们用于可复制的问题,因此它对我没有用。
我检查也发现像
https://github.com/signalapp/Signal-Android/issues/9311 (Android …