Sub Process_Globals
Private PeopleProjection() As String = Array As String("times_contacted", "last_time_contacted", _
"display_name", "has_phone_number", "starred", "_id", "photo_id")
Private cr As ContentResolver
End Sub
Sub Globals
End Sub
Sub Activity_Create(FirstTime As Boolean)
If FirstTime Then
cr.Initialize("cr")
End If
UpdateStarred("John", True)
End Sub
'Gets all contacts asynchronously and prints them.
Sub GetAllContacts
Dim u As Uri
u.Parse("content://com.android.contacts/contacts")
cr.QueryAsync(u, PeopleProjection, "", Null, "")
End Sub
Sub CR_QueryCompleted (Success As Boolean, Crsr As Cursor)
If Success = False Then
Log(LastException)
Else
For i = 0 To Crsr.RowCount - 1
Crsr.Position = i
Log(Crsr.GetString("display_name"))
Next
Crsr.Close
End If
End Sub
'Update the starred state of the given contact. Note that we use LIKE in the selection.
Sub UpdateStarred (Name As String, Starred As Boolean)
Dim u As Uri
u.Parse("content://com.android.contacts/contacts")
Dim values As ContentValues
values.Initialize
values.PutBoolean("starred", Starred)
Log(cr.Update(u, values, "display_name LIKE ?", Array As String("%" & Name & "%")))
End Sub
'Deletes the contact with the given name.
Sub DeleteContactByName(Name As String)
Dim u As Uri
u.Parse("content://com.android.contacts/data")
Dim crsr As Cursor = cr.Query(u, Array As String("_id", "raw_contact_id"), _
"mimetype = ? AND data1 = ?", Array As String("vnd.android.cursor.item/name", Name), "")
For i = 0 To crsr.RowCount - 1
crsr.Position = i
Dim rawId As Long = crsr.GetLong("raw_contact_id")
Log(cr.Delete(u, "raw_contact_id = ?", Array As String(rawId)))
Dim u2 As Uri
u2.Parse("content://com.android.contacts/raw_contacts")
Log(cr.Delete(u2, "_id = ?", Array As String(rawId)))
Next
crsr.Close
End Sub
'Inserts a new contact.
Sub InsertContact(Name As String, Phone As String)
Dim values As ContentValues
Dim uri1 As Uri
uri1.Parse("content://com.android.contacts/raw_contacts")
values.Initialize
values.PutNull("account_name")
values.PutNull("account_type")
Dim rawUri As Uri = cr.Insert(uri1, values)
Dim rawContactId As Long = rawUri.ParseId
uri1.Parse("content://com.android.contacts/data")
values.Initialize
values.PutLong("raw_contact_id", rawContactId)
values.PutString("mimetype", "vnd.android.cursor.item/phone_v2")
values.PutString("data1", Phone)
cr.Insert(uri1, values)
values.Initialize
values.PutLong("raw_contact_id", rawContactId)
values.PutString("mimetype", "vnd.android.cursor.item/name")
values.PutString("data1", Name)
cr.Insert(uri1, values)
End Sub