Kullanıcınızı hatırlama

Adını hatırlamanızı herkes sever. Uygulamanızı daha sevimli hale getirmek için yapabileceğiniz en basit ve en etkili şeylerden biri, kullanıcınızın kim olduğunu hatırlamaktır. Özellikle de kullanıcı yeni bir cihaza geçtiğinde veya telefonunun yanı sıra tablet de taşımaya başladığında. Peki, kullanıcınızın kim olduğunu nasıl anlarsınız? Yeni bir cihazda onları nasıl tanırsınız?

Birçok uygulama için yanıt, AccountManager API'leridir. Kullanıcının izniyle, kullanıcının cihazında depoladığı hesap adlarını getirmek için Hesap Yöneticisi'ni kullanabilirsiniz.

Kullanıcının hesaplarıyla entegrasyon, çeşitli işlemler yapmanıza olanak tanır. Örneğin:

  • Formları kullanıcının e-posta adresiyle otomatik olarak doldur.
  • Cihaza değil, kullanıcıya bağlı bir kimlik alın.

AccountManager'ın size uygun olup olmadığını belirleme

Uygulamalar genellikle şu üç teknikten birini kullanarak kullanıcıyı hatırlamaya çalışır:

  1. Kullanıcıdan bir kullanıcı adı girmesini isteyin.
  2. Cihazı hatırlamak için benzersiz bir cihaz kimliği alın.
  3. AccountManager kaynağından yerleşik hesabı alın.

1. seçenek sorunlu. İlk olarak, uygulamanızı kullanmadan önce kullanıcıdan bir şey girmesini istemek uygulamanızı otomatik olarak daha az çekici hale getirir. İkinci olarak, seçtikleri kullanıcı adının benzersiz olacağının garantisi yoktur.

2. seçenek kullanıcı için daha az zahmetli olsa da doğru yapmak zordur. Daha da önemlisi, kullanıcıyı yalnızca tek bir cihazda hatırlamanızı sağlar. Yeni ve pırıl pırıl bir cihaza geçen bir kullanıcının hüsrana uğradığını ancak uygulamanızın artık bu cihazı hatırlamadığını fark ettiğini düşünün.

3. Seçenek, tercih edilen tekniktir. Hesap Yöneticisi, kullanıcının cihazında depolanan hesaplar hakkında bilgi edinmenizi sağlar. Hesap Yöneticisi'ni kullanmak, kullanıcı kaç cihaza sahip olursa olsun kullanıcı arayüzünüze sadece birkaç dokunuş ekleyerek kullanıcınızı hatırlamanızı sağlar.

Kullanacağınız hesap türüne karar verme

Android cihazlar, birçok farklı sağlayıcının birden fazla hesabını saklayabilir. AccountManager alanını hesap adları için sorguladığınızda hesap türüne göre filtreleme yapabilirsiniz. Hesap türü, hesabı veren varlığı benzersiz şekilde tanımlayan bir dizedir. Örneğin, Google Hesapları com.google türündeyken Twitter com.twitter.android.auth.login kullanır.

GET_ACCOUNTS izni iste

Cihazdaki hesapların listesini almak için uygulamanızın GET_ACCOUNTS iznine sahip olması gerekir. Bu izni istemek için manifest dosyanıza bir <uses-permission> etiketi ekleyin:

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

Kullanıcıları bilgilendirin ve izin alma

getAccounts() veya getAccountsByType() çağrılarıyla kullanıcı hesaplarının listesini alabilirsiniz. Ancak API'nin kişisel ve hassas kullanıcı verilerini döndürdüğünü ve uygulamanız kişisel ve hassas verilere eriştiği, bu verileri topladığı, kullandığı veya paylaştığı her defasında bu durumu kullanıcılara net bir şekilde açıklamanız gerektiğini unutmayın. Google Play'de yayınlanan uygulamalar için kullanıcı verilerini koruyan politikalar şunları yapmanızı gerektirir:

  1. Uygulamanızın kişisel ve hassas verilere nasıl eriştiğini, bu verileri nasıl topladığını, kullandığını veya paylaştığını kullanıcıya açıklayın. Kabul edilebilir açıklama ve izin hakkında daha fazla bilgi edinin.
  2. Bu verileri hem cihaz içinde hem de cihaz dışında kullanımınızı açıklayan bir gizlilik politikası sağlayın.

Daha fazla bilgi için Kullanıcı verileriyle ilgili Google Play Politikası'nı ziyaret edin.

Hesap listesi için Hesap Yöneticisi'ni sorgulayın

Hangi hesap türüne ilgilendiğinize karar verdikten sonra o tür hesapları sorgulamanız gerekir. AccountManager.get() yöntemini çağırarak AccountManager örneğini alın. Ardından getAccountsByType() çağrısı yapmak için bu örneği kullanın.

Kotlin

val am: AccountManager = AccountManager.get(this) // "this" references the current Context

val accounts: Array<out Account> = am.getAccountsByType("com.google")

Java

AccountManager am = AccountManager.get(this); // "this" references the current Context

Account[] accounts = am.getAccountsByType("com.google");

Bu, Account nesne dizisi döndürür. Dizide birden fazla Account varsa kullanıcıdan seçim yapmasını isteyen bir iletişim kutusu sunun.

Uygulamanızı kişiselleştirmek için hesap nesnesini kullanma

Account nesnesi bir hesap adı içerir. Bu ad, Google hesapları için bir e-posta adresidir. Bu bilgileri çeşitli şekillerde kullanabilirsiniz. Örneğin:

  • Formda öneri olarak sunulur. Böylece kullanıcının hesap bilgilerini kendi başına girmesine gerek kalmaz.
  • Kullanım ve kişiselleştirme bilgilerini içeren kendi çevrimiçi veritabanınıza erişim anahtarı olarak kullanabilirsiniz.

Bir hesap adının yeterli olup olmadığına karar verme

Hesap adı, kullanıcıyı hatırlamanın iyi bir yoludur ancak Account nesnesi tek başına verilerinizi korumaz veya size kullanıcının hesap adı dışında başka bir şeye erişim sağlamaz. Uygulamanızın, kullanıcının gizli verilere erişmesi için internete bağlanmasına izin vermesi gerekiyorsa daha güçlü bir yönteme ihtiyacınız var: kimlik doğrulama. Kendi hesap türlerinizi yükleyebilmek için mevcut online hizmetlerde kimlik doğrulamayı ve özel kimlik doğrulayıcı yazma hakkında bilgi edinin.