9

numaralı telefona çağrı yapmasına rağmen sıfırdır. Güvenli bir arka uç kullanarak bir uç noktası oluşturdum ve geliştirdiğim bir uygulamada Mart ayından beri kullandım (kaynak belgeler here). Kısa bir süre önce son sürümü Android 6.0 cihazıma yükledim ve tek bir hata oluştu (4.2.2 & 5.1'de mükemmel çalışıyor).GoogleAccountCredential adı, setSelectedAccountName (Android 6.0)

hata: Ben kimlik bilgileri ile bir hata kadar takip

IllegalArgumentException: the name must not be empty: null 

, aşağıdaki kodunu görebilirsiniz. Android 6.0 hesabında "[email protected]" olabilir, ancak 'test' dizesi null olarak ortaya çıkıyor!

GoogleAccountCredential'ı değiştiren 6.0 hakkında belirli bir özellik var mı?

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; 
} 

cevap

13

Evet Android 6.0 Marshmallow ile, artık https://developer.android.com/training/permissions/index.html

bu kimlik bilgilerini almak için size İLETİŞİM grubuna

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

yılında GET_ACCOUNTS iznine ihtiyaç çalışma zamanında istek izinleri gerekecektir

Etkinliğinizde/fragmanınızda talep etmeniz ve uygulamanızla ilgili UX'leri kullanmanız gerekir.

+0

Zaten bu izin eklenmiştir. – easycheese

+0

ister misiniz, yoksa sadece manifestinizde mi? – AndroidEnthusiast

+0

Oh bok ... Bunu düşünmüyordun bile, tılsımın yakalanacağını düşünürdün .... Ya da daha iyi bir hata atılırdı. Muhtemelen haklısın, yine de test edeceğim. – easycheese