PyMaemo/Accessing APIs without Python bindings/More examples
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 contacts by phone number
Searching contacts by phone number can be done using the osso_abook_aggregator_find_contacts_for_phone_number() function:
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) # 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()
The "contacts" is a GList which can be iterated over as explained here.