Kullanıcı Profili
Android, bu API düzeyi 5 ' den beri Contactscontract sağlayıcısıyla kişileri listelediğinde destekliyordu. Örneğin, kişilerin listelenmesi, aşağıdaki kod örneğinde gösterildiği gibi Contactcontracts. Contacts sınıfının kullanımı kadar basittir:
// Get the URI for the user's contacts:
var uri = ContactsContract.Contacts.ContentUri;
// Setup the "projection" (columns we want) for only the ID and display name:
string[] projection = {
ContactsContract.Contacts.InterfaceConsts.Id,
ContactsContract.Contacts.InterfaceConsts.DisplayName };
// Use a CursorLoader to retrieve the user's contacts data:
CursorLoader loader = new CursorLoader(this, uri, projection, null, null, null);
ICursor cursor = (ICursor)loader.LoadInBackground();
// Print the contact data to the console if reading back succeeds:
if (cursor != null)
{
if (cursor.MoveToFirst())
{
do
{
Console.WriteLine("Contact ID: {0}, Contact Name: {1}",
cursor.GetString(cursor.GetColumnIndex(projection[0])),
cursor.GetString(cursor.GetColumnIndex(projection[1])));
} while (cursor.MoveToNext());
}
}
Android 4 (API düzeyi 14) ile başlayarak, Contactscontact. Profile sınıfı sağlayıcı aracılığıyla kullanılabilir . , Cihaz sahibinin ContactsContact.Profile adı ve telefon numarası gibi iletişim verilerini içeren bir cihazın sahibi için kişisel profile erişim sağlar.
Gerekli İzinler
İletişim verilerini okumak ve yazmak için, uygulamaların READ_CONTACTS sırasıyla ve izinlerini istemesi gerekir WRITE_CONTACTS .
Ayrıca, kullanıcı profilini okumak ve düzenlemek için, uygulamaların ve izinlerini istemesi gerekir READ_PROFILEWRITE_PROFILE .
Profil verileri güncelleştiriliyor
Bu izinler ayarlandıktan sonra bir uygulama, Kullanıcı profilinin verileriyle etkileşim kurmak için normal Android tekniklerini kullanabilir. Örneğin, profilin görünen adını güncelleştirmek için, aşağıda gösterildiği gibi, Contactscontract. Profile. ContentRawContactsUri özelliği Ile alınan contentresolver. Update ile birlikte bir çağırın:
var values = new ContentValues ();
values.Put (ContactsContract.Contacts.InterfaceConsts.DisplayName, "John Doe");
// Update the user profile with the name "John Doe":
ContentResolver.Update (ContactsContract.Profile.ContentRawContactsUri, values, null, null);
Profil verilerini okuma
Contactscontact. Profile. ContentUri için bir sorgu verme, profil verilerini geri okur. Örneğin, aşağıdaki kod Kullanıcı profilinin görünen adını okur:
// Read the profile
var uri = ContactsContract.Profile.ContentUri;
// Setup the "projection" (column we want) for only the display name:
string[] projection = {
ContactsContract.Contacts.InterfaceConsts.DisplayName };
// Use a CursorLoader to retrieve the data:
CursorLoader loader = new CursorLoader(this, uri, projection, null, null, null);
ICursor cursor = (ICursor)loader.LoadInBackground();
if (cursor != null)
{
if (cursor.MoveToFirst ())
{
Console.WriteLine(cursor.GetString (cursor.GetColumnIndex (projection [0])));
}
}
Kullanıcı profiline gitme
Son olarak, Kullanıcı profiline gitmek için bir eylem ile bir amaç oluşturun ActionView ve ContactsContract.Profile.ContentUri ardından bunu StartActivity şöyle bir yönteme geçirin:
var intent = new Intent (Intent.ActionView,
ContactsContract.Profile.ContentUri);
StartActivity (intent);
Yukarıdaki kodu çalıştırırken, Kullanıcı profili aşağıdaki ekran görüntüsünde gösterildiği gibi görüntülenir:
Kullanıcı profiliyle çalışma, Android 'deki diğer verilerle etkileşime benzer ve ek bir cihaz kişiselleştirmesini sağlar.
