android.security.KeyChainException: java.lang.IllegalStateException: uid <> 没有权限访问请求的别名
android.security.KeyChainException: java.lang.IllegalStateException: uid <> doesn't have permission to access the requested alias
我在旋转屏幕后重新创建 activity 时尝试获取之前选择的私钥时出现此错误。
我看到 this question here, 表明 choosePrivateKeyAlias()
需要被称为 "at least once after the application is installed"。在这种情况下,它被调用了很多次,包括应用程序在屏幕旋转发生之前启动时 - 那么为什么它被认为是一个新应用程序? uid 是否发生了某种变化?
调用如下:
PrivateKey privateKey = KeyChain.getPrivateKey(getBaseContext(), alias);
我刚刚注意到另一个问题使用的是 getCertificateChain
而不是 getPrivateKey
- 这有区别吗?
为了后代,重复我的评论,问题是别名没有被正确存储,所以这个调用试图访问一个完全不相关或不存在的私钥。
我在旋转屏幕后重新创建 activity 时尝试获取之前选择的私钥时出现此错误。
我看到 this question here, 表明 choosePrivateKeyAlias()
需要被称为 "at least once after the application is installed"。在这种情况下,它被调用了很多次,包括应用程序在屏幕旋转发生之前启动时 - 那么为什么它被认为是一个新应用程序? uid 是否发生了某种变化?
调用如下:
PrivateKey privateKey = KeyChain.getPrivateKey(getBaseContext(), alias);
我刚刚注意到另一个问题使用的是 getCertificateChain
而不是 getPrivateKey
- 这有区别吗?
为了后代,重复我的评论,问题是别名没有被正确存储,所以这个调用试图访问一个完全不相关或不存在的私钥。