PyMaemo/Accessing APIs without Python bindings/More examples

From Maemo Wiki
Jump to navigationJump to search

More examples

This page contains some other example code using ctypes. Note that they are not complete, and assume some code already shown on the [[../|main article]].

Searching for contacts by phone number

Searching for contacts by phone number can be done using the osso_abook_aggregator_find_contacts_for_phone_number() function: <source lang="python"> def aggregator_ready_cb(aggregator, error, user_data):

   contacts = osso_abook.osso_abook_aggregator_find_contacts_for_phone_number(aggregator, phone_number, 1)
   if contacts:
       print "Contacts with phone number %s:" % phone_number
       for i in glist(contacts):
           contact_get_display_name = osso_abook.osso_abook_contact_get_display_name
           contact_get_display_name.restype = ctypes.c_char_p
           print contact_get_display_name(i)
       glib.g_list_free(contacts)
   else:
       print "No contacts found with phone number %s." % phone_number
   gtk.main_quit()

aggregator = osso_abook.osso_abook_aggregator_get_default(0) wait_cb_type = ctypes.CFUNCTYPE(None, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p)

  1. Keep prototype object reference so it is not destroyed

cb_proto = wait_cb_type(aggregator_ready_cb) osso_abook.osso_abook_waitable_call_when_ready(aggregator, cb_proto, 0, 0)

gtk.main() </source>