Il modulo contacts è un modulo (python s60) per la gestione della rubrica.
Qui sotto è presente il codice che permette la visualizzazione dei contatti in ordine alfabetico(di default li visualizza secondo id,cioè l’ordine della memorizzazione nel cellulare)
import appuifw
import contactsnomi=[] #contiene nomi UNICODE in rubrica
nomi1=[] #contiene nomi NON UNICODE in rubrica
nome=""
nome_uni=""
diz={} # la CHIAVE = nomi e VALORE = nomi1
rubrica=contacts.open()
for id in rubrica:
nome=rubrica[id]
nomi1.append(nome)
nome_uni=unicode(nome.title)
nomi.append(nome_uni)
diz[nome_uni]=nome
nomi.sort() #ordino lista alfabeticamente
index=appuifw.selection_list(nomi,search_field=1)
scelta=diz[nomi[index]]
campi_contatto=scelta.find()
casa=str(campi_contatto[4].value)
cel=str(campi_contatto[5].value)
l=[]
if ((casa!="")and(cel!="")):
l.append(unicode(casa))
l.append(unicode(cel))
scelta2=appuifw.selection_list(l,search_field=0)
numero=l[scelta2]
appuifw.note(u"Num: "+numero,'info')
elif((casa!="")and(cel=="")):
l.append(unicode(casa))
scelta2=appuifw.selection_list(l,search_field=0)
numero=l[scelta2]
appuifw.note(u"Num: "+numero,'info')
elif((casa=="")and(cel!="")):
l.append(unicode(cel))
scelta2=appuifw.selection_list(l,search_field=0)
numero=l[scelta2]
appuifw.note(u"Num: "+numero,'info')
In pratica nella scansione della rubrica creo una lista che contiene i nomi dei contatti nomi ed un dizionario che per ogni nome fa corrispondere il la stringa (non unicode) che contiene le informazioni del contatto.
Nella selection_list appare la lista dei nomi ordinata ed una volta scelto il nome si prende il valore corrispondente alla chiave del dizionario e si estraggono i valori.