两个APP共享AccountManager管理的账号

首先说下背景:我有一个账号APP,用来进行账号管理,还有一个APP(称为运动APP),运动APP需要账号APP提供Jar包,进行账号的操作。账号APP用Android AccountManager进行账号管理,这两个APP共享账号信息。

我师傅告诉我,两个APP共享账号信息需要满足两个条件,一个是在同一个用户组里,还有一个是使用相同的签名。感谢我师傅!

当然,上述两个条件的前提是两个APP的accountType是相同的。


下面说下我的错误历程:

刚开始我的账号APP和运动APP不能够兼容,安装了账号APP后运动APP崩溃,反之亦然,提升错误为

W/System.err: java.lang.SecurityException: caller uid 10121 is different than the authenticator's uid

百度了下这个错误是因为accountType设置不同导致的,比较好的解答位置:

http://stackoverflow.com/questions/3774282/securityexception-caller-uid-xxxx-is-different-than-the-authenticators-uid/5329490#5329490

但是我的两个APP的accountType是相同的,res/xml/authenticator.xml里的accountType也是相同的。提示上述错误就有点怪了,自己搞了好久,没搞出来,问了下师傅,师傅说我的APP要满足以上的两个条件。这才能够让两个APP兼容。


在解决问题的过程中,遇到了jks签名文件,我要在android studio中测试已签名的APP,在app/build.gradle的android{}下面添加配置签名信息

//配置keystore签名
    signingConfigs {
        release {
            storeFile file("******.jks")
            storePassword "******"
            keyAlias "******"
            keyPassword "******"
        }
    }


    buildTypes {
        debug {
            signingConfig signingConfigs.release
        }
        release {
            signingConfig signingConfigs.release
        }
    }
因为不知道keyAlias是什么,怎么查询呢?需要使用keytool查看jks中的签名信息,

在命令行中输入以下命令:

keytool -list -v -keystore C:\Users\He\Desktop\******.jks -storepass xxx

我把jks文件的名字用***隐藏掉了,xxx为签名的密码。

里面的别名就是keyAlias。


感觉自己能写很多,但写着写着就感觉没什么了。就这些吧,里面的知识点自己有时间还是要学习的





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值