2017-09-22 53 views
6

तक पहुंचने की अनुमति नहीं है, जब मैं गतिविधि को फिर से बनाने के बाद पहले चुनी गई निजी कुंजी लाने की कोशिश करता हूं तो मुझे यह त्रुटि मिल रही है स्क्रीन घूर्णन।android.security.KeyChainException: java.lang.IllegalStateException: uid <> को अनुरोधित उपनाम

मैंने this question here, देखा है जो बताता है कि choosePrivateKeyAlias() को "एप्लिकेशन इंस्टॉल होने के बाद कम से कम एक बार" कहा जाना चाहिए। इस मामले में इसे कई बार कहा जाता है, जिसमें स्क्रीन रोटेशन होने से पहले ऐप शुरू हो जाता है - तो इसे एक नया ऐप क्यों माना जाता है? क्या यूआईडी किसी तरह बदल रहा है?

यहाँ कॉल है:

PrivateKey privateKey = KeyChain.getPrivateKey(getBaseContext(), alias);

मैं सिर्फ देखा है कि अन्य प्रश्न getCertificateChain बल्कि getPrivateKey से उपयोग कर रहा था - कि अंतर है?

+1

क्या आप सुनिश्चित हैं कि आप 'उर्फ' का उपयोग कर रहे हैं वास्तव में [एलियास कॉलबैक] (https://developer.android.com/reference/android/security/KeyChainAliasCallback.html#alias (जावा। lang.String))? क्या आप उस कॉल के आस-पास अपना अधिक कोड पोस्ट कर सकते हैं? –

+0

आप सही थे, मैं वास्तव में इसे ठीक से संग्रहीत नहीं करता था और इसलिए गलत उपनाम की तलाश में था। यदि आप इस सुझाव को उत्तर के रूप में रखते हैं तो मैं इसे सही के रूप में चिह्नित करूंगा। –

उत्तर

4

वंशावली के लिए, और मेरी टिप्पणी दोहराने के लिए, मुद्दा यह था कि उपनाम ठीक से संग्रहीत नहीं किया जा रहा था, और इसलिए इस कॉल ने पूरी तरह से असंबंधित, या गैर-कानूनी, निजी कुंजी तक पहुंचने का प्रयास किया।

संबंधित मुद्दे