後でアクティビティを再作成するときに以前に選択した秘密鍵をフェッチしようとするとこのエラーが発生します画面を回転させる。android.security.KeyChainException:java.lang.IllegalStateException:uid <>に要求されたエイリアスへのアクセス権がありません
this question here,は、choosePrivateKeyAlias()
が「アプリケーションのインストール後少なくとも1回」と呼ばれる必要があることを示しています。このケースでは、画面の回転が始まる前にアプリが起動されたときを含め、何度も呼び出されています。なぜ新しいアプリと考えられるのですか?何とかUIDが変わりますか?ここで
を呼び出します:
PrivateKey privateKey = KeyChain.getPrivateKey(getBaseContext(), alias);
私は他の質問がgetCertificateChain
ではなくgetPrivateKey
を使用していたことに気付きました - 違いということでしょうか?
あなたが使用している 'エイリアス'が実際には[エイリアスコールバック](https://developer.android.com/reference/android/security/KeyChainAliasCallback.html#alias(java。 lang.String))?その呼び出しの周りにあなたのコードをもっと投稿できますか? –
あなたは正しいと思いますが、私は実際にそれを正しく保管しておらず、間違ったエイリアスを探していました。あなたがこの提案を回答としてお答えいただければ、それを正しいものとしてマークします。 –