Daha sonra seçili özel anahtarı almaya çalıştığımda bu hatayı alıyorum. ekranı döndürmek.android.security.KeyChainException: java.lang.IllegalStateException: uid <> istenen takma adıma erişme iznine sahip değil.
this question here,'u gördüm, bu da "uygulama yüklendikten sonra en az bir kez" choosePrivateKeyAlias()
çağrılması gerektiğini önerir. Bu durumda, ekran döndürme gerçekleşmeden önce uygulama başlatıldığında dahil olmak üzere sayısız kez çağrıldı - bu yüzden neden yeni bir uygulama olarak kabul edilir? Bir şekilde değişiyor mu? fark olmasıdır -
PrivateKey privateKey = KeyChain.getPrivateKey(getBaseContext(), alias);
Sadece diğer soru getCertificateChain
yerine getPrivateKey
daha kullanıyordum fark ettik: Burada
Kullandığınız "takma adın" aslında [alias callback] tarafından döndürülen dizedir (https://developer.android.com/reference/android/security/KeyChainAliasCallback.html#alias (java. lang.String))? Bu aramanın etrafına daha fazla kod gönderebilir misiniz? –
Haklıydın, doğru şekilde saklamamıştım ve yanlış takma adı arıyordum. Bu öneriyi bir cevap olarak verirseniz, doğru olarak işaretleyeceğim. –