aşağıda gösterilen Bunu yapmak için çeşitli yollar vardır.
Kullanıcı dostu bir uyarı olarak, hesap, profil ve iletişim bilgileriyle çalışırken kullanıcıyı dikkatli ve ön tarafa taşıyın. Bir kullanıcının e-posta adresini veya diğer kişisel bilgilerini kötüye kullanırsanız, kötü şeyler olabilir.
Yöntem A: Kullanım AccountManager (API seviyesi 5 +) Cihazın üzerindeki tüm hesap adlarının bir listesini almak için AccountManager.getAccounts
veya AccountManager.getAccountsByType
kullanabilirsiniz
. Neyse ki, belirli hesap türleri için (com.google
dahil), hesap adları e-posta adresleridir. Aşağıdaki örnek snippet. Bu GET_ACCOUNTS
izin alınması gerektiğini
Pattern emailPattern = Patterns.EMAIL_ADDRESS; // API level 8+
Account[] accounts = AccountManager.get(context).getAccounts();
for (Account account : accounts) {
if (emailPattern.matcher(account.name).matches()) {
String possibleEmail = account.name;
...
}
}
Not: AccountManager
kullanımıyla ilgili
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
Daha SDK'sında Contact Manager örnek kod bulunabilir.
Yöntem B: Kullanım ContactsContract.Profile (API seviyesi 14+) Android 4.0 (Ice Cream Sandwich) itibariyle
kullanıcının profilini erişerek kullanıcının e-posta adreslerini alabilirsiniz. Kullanıcı profiline erişmek, iki izin gerektirdiğinden biraz ağırdır (daha fazlası için), ancak e-posta adresleri oldukça hassas veri parçalarıdır, bu yüzden bu, kabulün fiyatıdır.
Aşağıda, e-posta adresleri içeren profil veri satırlarını almak için CursorLoader
kullanan tam bir örnek verilmiştir.
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
bir iletişim e-posta adresi almak dışarı? –
Hayır, aygıtın birincil e-posta adresi. –
Bir Android cihazla ilişkilendirilmiş bir veya daha fazla e-posta adresi var mı? Ben de öyle isterdim. –