PyMaemo/Accessing APIs without Python bindings/More examples
(→Searching contacts by phone number) |
(→Searching contacts by phone number) |
||
Line 5: | Line 5: | ||
== Searching contacts by phone number == | == Searching contacts by phone number == | ||
- | Searching contacts by phone number can be done using the [http://maemo.org/api_refs/5.0/5.0-final/libosso-abook/ | + | Searching contacts by phone number can be done using the [http://maemo.org/api_refs/5.0/5.0-final/libosso-abook/OssoABookAggregator.html#osso-abook-aggregator-find-contacts-for-phone-number 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 [[../#Accessing Items in a GList|here]]. | The "contacts" is a GList which can be iterated over as explained [[../#Accessing Items in a GList|here]]. | ||
[[Category:Python]] | [[Category:Python]] |
Revision as of 14:18, 12 April 2010
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.