2015-08-28 12 views
5

Android M-Preview üstünde GoogleAccountCredential.setSelectedAccount çalışmıyor gibi görünüyor.Android M - GoogleHesap numarasıDosya kümesiSeçariHesap çalışmıyor - ad boş olmamalıdır

Hata ayıklama yaparken, bu yöntemi çağırdıktan sonra, nesnenin selectedAccount ve accountName alanlarının hala boş olduğunu fark ettim.

Hata ayıklama sırasında accountName değişkenimin boş veya sıfır olmadığını görebiliyorum, .setSelectedAccountName() numaralı telefonu arıyorum, ancak hata ayıklama penceresinde de görebileceğiniz gibi, GoogleAccountCredential alanındaki alan hala boş.

Debugging window code Debugging window debug values

Bu bazı izinler ile ilgili olabilir sence? Benim Manifest günü, aşağıdaki izinleri ilan var:

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

Ben GET_ACCOUNTS iznini (https://developer.android.com/preview/features/runtime-permissions.html#normal göre) M ücretsiz olarak anladığını biliyorum, ancak diğer iki izinleri M-Önizleme "bilinmeyen" dir . Yani belki bu? tehlikeli ve şimdi cihazınızda diğer uygulamalar tarafından oluşturulan hesapları ile etkileşime girebilir Ancak o zaman yeni Activity.requestPermissions()

kullanarak çalışma zamanında bunu talep etmelidir anlamına İletişim izin grubunun bir parçasıdır:

+0

Yemin ederim, M buggy doğru miyav, saçımı çekmemi sağlıyor. Size iyi şanslar dostum! – Sipty

cevap

4

android.permission.GET_ACCOUNTS ProtectionLevel vardır.

+0

Belgelere bir göz attığınızda, android.permission.GET_ACCOUNTS normal izinlerde listelenir. https://developer.android.com/preview/features/runtime-permissions.html#normal Her neyse, sadece bu izni istemeye çalıştım ve şimdi çalışıyor. Bu iznin NORMAL listesinde olduğunu varsayıyordum. –

+0

Bu önizleme Önizleme 2 ve Önizleme 3 arasında yapıldı, birileri belgede bu noktayı kaçırmış olmalı. Sabit bulabilir miyim göreceğim. Bu arada, tüm izin gruplarının ve koruma düzeylerinin listesini kullanarak aşağıdakileri kullanarak alabilirsiniz: adb kabuk pm listesi izinleri -g -f –

+3

Bilgi için teşekkürler. Bu iznin neden tehlikeli olduğuna dair herhangi bir bilgi var mı? Ayrıca, bu izni istediğimizde "APP XYZ'nin kişilerinize erişmesine izin ver" yazan bir diyalog var. Onların iletişim bilgilerine erişmeye çalışmıyorum, sadece hesap isimleri ... Bence birçok kullanıcı korkacak. –

0

Aynı sorunu yaşadım.

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")); 

Kullanım setSelectedAccount() yerine setSelectedAccountName ait()

e-posta olarak ayarlamak istediğiniz hesabı ayarlamak ve ikinci parametre olarak paket adınızı verebilir.

İlgili konular