java – 将自定义AccountAuthenticator与多个应用程序一起使用
我有2个独立的
Android项目,一个是用于管理设备中用户帐户的AbstractAccountAuthenticator的实现,另一个是应该从AccountAuthenticator获取令牌并使用它的推送应用程序.
AbstractAccountAuthenticator的实现正在工作,并在“设置”菜单中的“帐户和同步”部分调用时添加帐户,但是当我从推送应用程序调用addAccount()时,我得到“权限被拒绝:checkComponentPermission()”和应用程序在那里死 我不能提供很多源代码,因为我不能让它公开,但我向你保证他们以“独立”的方式工作. 我已经搜索了从不同的应用程序正确使用AccountManager的示例,但没有找到. freenode也没有运气. 我发现从AccountAuthenticator中启动活动(使用Intent.FLAG_NEW_TASK和context.startActivity(intent))可以解决问题,但这意味着addAccount()不会返回到AccountManager,我认为不会与开发指南保持一致,因为它打破了AccountManager使用的流程.另一种方法是导出在请求用户凭据时使用的Acitivity.但我认为这可能是一个安全问题,因为它应该由AccountManager调用,而不是外部调用. 感谢您对此有任何想法. PS: >所有权限都已正确使用,除非我需要一个我不知道可以跨应用程序工作的特殊权限. 深入Google的登录服务并绊倒了Settings类之后,我发现了我认为应该是解决方案: >不要导出东西,我一直认为调用你的实现,服务或活动,绕过AccountManager是一个安全问题. 实现这一点的方法非常简单,实际上: Intent i = new Intent( Settings.ACTION_ADD_ACCOUNT ); i.putExtra( Settings.EXTRA_AUTHORITIES,new String[] { "com.exaple.yourauth" } ); contextVar.startActivity( i ); 这样,您要求设置提升新帐户,总线的可能权限列表,因为您要添加EXTRA_AUTHORITIES参数,一个包含要显示的权限的字符串,它会将选项限制为您想要的选项.如果只有一个与您的额外匹配,则以适当的方式调用客户经理和登录活动. 我真的希望这可以帮助周围的任何人. 解决方法
深入Google的登录服务并绊倒了Settings类之后,我发现了我认为应该是解决方案:
>不要导出东西,则以适当的方式调用客户经理和登录活动. 我真的希望这可以帮助周围的任何人. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- java – 在Windows 7上没有执行Spring计划任务
- java – 如何使用VTDGenHuge将大型xml拆分成小块?
- 检查用户是否在java应用程序中是root用户
- java – 使用Gson序列化POJO
- spring boot配置多个请求服务代理的完整步骤
- java – actionBar.setNavigationMode(ActionBar.NAVIGATIO
- java – “没有EntityManager的持久性提供程序”错误
- 8个简单部分开启Java语言学习之路 附java学习书单
- 如何在Java中以递归方式从N元素集生成所有k元素子集
- 06-03 Java 面向对象思想概述、开发设计特征,类和对象的定