12

Uygulamamı, Google+ girişini kullanan yeni Android M izinleriyle güncellemeye çalışıyorum, ancak checkSelfPermission(Manifest.permission.GET_ACCOUNTS) görüntülendiğinde açılan iletişim kutusu, "Kişilerim'in kişilerinize erişmesine izin verilsin mi?" Reddet ve İzin Ver düğmeleriyle.GET_ACCOUNTS izni ile yanlış mesaj

Bu, GET_ACCOUNTS izni için biraz tuhaf görünüyor. Bunun yerine hesaplarınıza erişmekle ilgili bir şey söylememeli mi? Bu bir hata mı? Yoksa farklı bir şey mi yapmalıyım?

+4

Bu tasarımla, ancak şaşırtıcı tasarım gereğidir. İletişim izinleri son derece önemlidir - genellikle yüzlerce kişiden oluşan özel verileri korur. Kullanıcıya bunu sormak, GET_ACCOUNTS kullanmak için bir anlam ifade etmemektedir - kullanıcı bunu kabul etmemelidir. – Tom

cevap

4

GET_ACCOUNTS izin

  • android.permission.WRITE_CONTACTS
  • android.permission.GET_ACCOUNTS

    • android.permission.READ_CONTACTS birlikte android.permission-group.CONTACTS grubunun bir parçasıdır

    Bu nedenle, KONTAKLAR için iletiyi alırsınız.

    Grupta bir izin istediğinde, hepsini bu grupta alacaksınız. Android ile ilgili daha fazla bilgi edinmek için M here

  • +2

    hmm .. thats garip. GET_ACCOUNTS için izin istiyor olsaydık, kullanıcılara, kişileri okumaya çalıştığımızı söylemek yanıltıcı görünüyor. yok hayır? –

    +1

    Eh, bu yüzden Google, mustShowRequestPermissionRationale yöntemini yaptı, bu yüzden kullanıcıya kendinize neden açıkladığınızı izah edebilirsin – DDsix

    +2

    Bunu yapmamı istedim ama aranmıyor gibi görünüyor ve Android'in gösterip göstermeyeceğini belirliyor gibi görünüyor. Yani :( –

    -1

    Kullanıcıların Google + 'da oturum açmalarına izin veren bir öğenin uygulamasını güncelledim. Çalışma zamanında GET_ACCOUNTS iznini kontrol etmeniz gerekmeyebilir. Bildirimi, android:maxSdkVersion="22" ile GET_ACCOUNTS iznine hak kazanmak için güncelledim.

    Marshmallow çalıştıran bir Nexus 5 üzerinde, çalışma zamanı izinleri iletişim kutusunu görüntülemeden Google + 'yı kullanarak başarılı bir şekilde giriş yapabildim. Kişiler Ayarlar> Uygulamalar> [istemcimin uygulaması]> İzinler bölümünde görünmez. Marshmallow davranış değişikliği yansıtmaktadır GET_ACCOUNTS için

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

    Belgeleri here tarif edilmektedir.

    +0

    , "maxSdkVersion" ifadesini Manifest tihs biçiminde belirtmenin herhangi bir yan etkisi var mı? –

    +0

    Buna inanmayın. Marshmallow üzerinde, bir Uygulama tarafından kendi yaptığınızdan farklı bir imza ile oluşturulan hesaplara erişmeniz gerekiyorsa, çalışma zamanında GET_ACCOUNTS iznini sormanız gerekir. – fingertricks

    +0

    maxSdkVersion 22'yi kullanmayın. Bu, uygulamanızın Play Store'da hiçbir Marshmallow cihazının görülmeyeceği anlamına gelir. –