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.
