9

कॉल करने के बावजूद शून्य है, मैंने एक सुरक्षित बैकएंड का उपयोग करके एक एंडपॉइंट बनाया है और मार्च से एक ऐप पर उपयोग कर रहा हूं (स्रोत दस्तावेज़ here)। मैंने हाल ही में अपने एंड्रॉइड 6.0 डिवाइस पर नवीनतम संस्करण स्थापित किया है और एक अजीब त्रुटि पॉप अप है (यह 4.2.2 & 5.1 पर पूरी तरह से काम करता है)।GoogleAccountCredential नाम सेट सेट किए गए ऑक्साउंटनाम (एंड्रॉइड 6.0)

विशिष्ट त्रुटि है:

IllegalArgumentException: the name must not be empty: null 

कौन सा मैं क्रेडेंशियल के साथ एक त्रुटि का पता लगाया है, तो आप नीचे दिए गए कोड देख सकते हैं। एंड्रॉइड 6.0 खाते पर "[email protected]" हो सकता है लेकिन स्ट्रिंग 'टेस्ट' शून्य हो जाता है!

क्या 6.0 के बारे में कुछ विशिष्ट है जो GoogleAccountCredential को बदलता है?

public static GoogleAccountCredential getCredential(Context ctx) { 

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); 
    String account = prefs.getString(UserProfileHelper.PREF_USER_ACCOUNT, ""); 
    GoogleAccountCredential credential = GoogleAccountCredential.usingAudience(ctx, 
      "server:client_id:MY_ACCOUNT_NUMS.apps.googleusercontent.com") 
      .setSelectedAccountName(account); 


    String test = credential.getSelectedAccountName(); 
    return credential; 
} 

उत्तर

13

हाँ साथ एंड्रॉयड 6.0 Marshmallow, अब आप अनुरोध अनुमतियों को रन टाइम पर की आवश्यकता होगी https://developer.android.com/training/permissions/index.html

आदेश वे प्रमाणीकरण प्राप्त करने के लिए आप संपर्क समूह

https://developer.android.com/guide/topics/security/permissions.html#normal-dangerous

में GET_ACCOUNTS अनुमति की जरूरत

आपको इसे अपनी गतिविधि/टुकड़े में अनुरोध करना होगा और अपने ऐप से संबंधित किसी भी यूएक्स को संभालना होगा।

+0

पहले से ही उस अनुमति को जोड़ा गया है। – easycheese

+0

क्या आप इसका अनुरोध कर रहे हैं या यह सिर्फ आपके मैनिफेस्ट में है? – AndroidEnthusiast

+0

ओह बकवास ... इसके बारे में भी सोचा नहीं था, आपको लगता है कि लिंट इसे पकड़ लेगा .... या यह कि एक बेहतर त्रुटि फेंक दी जाएगी। आप शायद सही हैं, हालांकि मैं इसका परीक्षण करूंगा। – easycheese

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