次のコードを使用してインストールした 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
キーチェーンにアクセスする正しい方法は何ですか?