20 Kasım 2017 Pazartesi

ContentResolver Sınıfı

Giriş
Açıklaması şöyle
Content providers can help an application manage access to data stored by itself, stored by other apps, and provide a way to share data with other apps. They encapsulate the data, and provide mechanisms for defining data security. Content providers are the standard interface that connects data in one process with code running in another process. Implementing a content provider has many advantages. Most importantly you can configure a content provider to allow other applications to securely access and modify your app data
Activity İçinden Almak
ContenResolver activity içinden şöyle alınır.
MainActivity.this.getContentResolver()
Şöyle yaparız.
ContentResolver cr = getContentResolver();
delete metodu
Örnek
Tüm SMS'leri silmek için şöyle yaparız.
context.getContentResolver().delete(Uri.parse("content://sms/"), null, null);
query metodu
Şöyle yaparız.
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
        null, null, null, null);
Cursor'ı dolaşmak için şöyle yaparız.
if (cur.getCount() > 0) {
  while (cur.moveToNext()) {
    ... 
  }
}
Rehber
Rehberi dolaşmak için şöyle yaparız.
while (cur.moveToNext()) {
  String id = cur.getString (cur.getColumnIndex(
    ContactsContract.Contacts._ID));
  String name = cur.getString(cur.getColumnIndex(
    ContactsContract.Contacts.DISPLAY_NAME));
  ...  
 }
Kayıtlı kişilerin birden fazla telefon numarası olabilir. Tümünü almak için şöyle yaparız.
if (Integer.parseInt(cur.getString(cur.getColumnIndex(
  ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
  // get the phone number
  Cursor pCur = cr.query(
    ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, 
    ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
    new String[]{id}, null);
  while (pCur.moveToNext()) {
    String phone = pCur.getString(pCur.getColumnIndex(
      ContactsContract.CommonDataKinds.Phone.NUMBER));
    ...
  }
  pCur.close();
}
Takvim
Şöyle yaparız.
Cursor cursor = cr.query(Uri.parse("content://com.android.calendar/events"),
 new String[]{ "calendar_id", "title", "description", "dtstart", "dtend",
 "eventLocation" }, null, null, null);


Hiç yorum yok:

Yorum Gönder