5

एंड्रॉइड एम-पूर्वावलोकन GoogleAccountCredential.setSelectedAccount पर काम नहीं लग रहा है।एंड्रॉइड एम - GoogleAccountCredential setSelectedAccount काम नहीं करता है - नाम शून्य नहीं होना चाहिए

डीबगिंग करते समय, मैंने देखा कि उस विधि को कॉल करने के बाद, selectedAccount और accountName ऑब्जेक्ट के फ़ील्ड अभी भी शून्य हैं।

डीबगिंग करते समय आप देख सकते हैं कि मेरा चर accountName खाली या शून्य नहीं है, मैं .setSelectedAccountName() पर कॉल करता हूं, लेकिन जैसा कि आप डीबग विंडो में देख सकते हैं, GoogleAccountCredential में फ़ील्ड अभी भी शून्य है।

Debugging window code Debugging window debug values

मुझे लगता है कि यह कुछ अनुमतियों से संबंधित हो सकता है? मेरी प्रकट पर, मैं निम्न अनुमतियों की घोषणा की है:

<uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
<uses-permission android:name="android.permission.USE_CREDENTIALS" /> 
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> 

मुझे पता है कि GET_ACCOUNTS अनुमति आप (https://developer.android.com/preview/features/runtime-permissions.html#normal के अनुसार) एम पर मुक्त करने के लिए मिलता है, लेकिन अन्य दो अनुमतियों एम पूर्वावलोकन करने के लिए "अज्ञात" कर रहे हैं । तो शायद, यह वह है? खतरनाक और अब संपर्क अनुमति समूह, आप नए Activity.requestPermissions()

का उपयोग कर उसके बाद ही आप अपने डिवाइस पर अन्य एप्लिकेशन द्वारा बनाए गए खातों के साथ बातचीत कर सकते हैं क्रम में यह अनुरोध करना चाहिए जिसका मतलब है का हिस्सा है:

+0

मैं कसम खाता हूं, एम इतनी छोटी गाड़ी है, यह मुझे अपने बालों को खींचती है। आप के लिए शुभकामनाएं! – Sipty

उत्तर

4

android.permission.GET_ACCOUNTS ProtectionLevel है।

+0

यदि आप प्रलेखन को देखते हैं, तो android.permission.GET_ACCOUNTS सामान्य अनुमतियों में सूचीबद्ध है। https://developer.android.com/preview/features/runtime-permissions.html#normal वैसे भी, मैंने अभी उस अनुमति का अनुरोध करने का प्रयास किया है, और यह अब काम करता है। मैं मान रहा था कि यह अनुमति सामान्य सूची में थी। –

+0

उस विशेष परिवर्तन को पूर्वावलोकन 2 और पूर्वावलोकन 3 के बीच बनाया गया था, किसी ने दस्तावेज़ में इस स्थान को याद किया होगा। मैं देखूंगा कि मैं इसे ठीक कर सकता हूं या नहीं। इस बीच आप सभी अनुमति समूहों और सुरक्षा स्तरों की एक सूची प्राप्त कर सकते हैं: adb shell pm सूची अनुमतियां -g -f –

+3

जानकारी के लिए धन्यवाद। इस अनुमति को खतरनाक क्यों माना जाता है इस पर कोई जानकारी? साथ ही, यह वास्तव में बुरा है कि जब हम इस अनुमति के लिए पूछते हैं, तो एक संवाद है "एपीपी XYZ को अपने संपर्कों तक पहुंचने दें"। मैं अपने संपर्कों तक पहुंचने की कोशिश नहीं कर रहा हूं, सिर्फ उनके खाता नाम ... मुझे लगता है कि बहुत से उपयोगकर्ता डर जाएंगे। –

0

मुझे एक ही समस्या थी।

उपयोग setSelectedAccount() के बजाय setSelectedAccountName की()

mCredential = GoogleAccountCredential.usingOAuth2(
       getApplicationContext(), Arrays.asList(SCOPES)) 
       .setBackOff(new ExponentialBackOff()); 

     // to set accountName manually instead of prompting user to select it 
     mCredential.setSelectedAccount(new Account("[email protected]", "com.android.example")); 

खाते है कि आप ईमेल के रूप में सेट करना चाहते हैं की स्थापना की और आप दूसरे पैरामीटर के रूप में अपने पैकेज का नाम दे सकते हैं।

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