1

次のコードを使用してインストールした x509 証明書があります。

var certificate = AssetManagement.GetCertificate (xdoc); //this is a helper class that retrieves the certificate

//Code to install to keychain
Intent intent = KeyChain.CreateInstallIntent ();
intent.PutExtra (KeyChain.ExtraCertificate, certificate.GetRawCertData());
intent.PutExtra (KeyChain.ExtraName, "AzureManagement");

StartActivity (intent);

このコードは、Android UI を正常に呼び出して証明書をインストールし、デバイスを保護するためにユーザーに PIN の設定を強制します。それはうまくいきます。

しかし、次のようにキーチェーンにアクセスしようとすると:

var chain = KeyChain.GetCertificateChain (this, "My cert alias");

次のエラーが表示されます。Java.Lang.IllegalStateException: calling this from your main thread can lead to deadlock

キーチェーンにアクセスする正しい方法は何ですか?

4

1 に答える 1