(This Website is created and managed by Pankaj Nathani)
Home Installation Phase 1 Phase2 Phase4 Module-Wise Examples Modules
Extensions C++Py60 Extensions Forum Nokia(Python) Google Group Contact Me
Getting Started With Python S60
Phase 3
Contacts Example
from appuifw import *
from telephone import *
import contacts
old_body=app.body
db=contacts.open()
entry =db.find(query(u'Insert name','text'))
L=[]
for item in entry:
L.append(item.title)
if len(L)>0:
index = appuifw.selection_list(choices=L , search_field=0)
num=entry[index].find('mobile_number')[0].value
dial(num)
else:
note(u'No matches','error')
app.body=old_body
app.set_exit()
----------------------------------------------------------------
Create Tabs
# This script creates tabs that let you switch between different applications
# lb app, lb app and draw app
import appuifw
import e32
from graphics import *
# define application 1: listobx app
# create
your icons for the lb content
icon1 = appuifw.Icon(u"z:\\system\\data\\avkon.mbm", 28, 29)
icon2 = appuifw.Icon(u"z:\\system\\data\\avkon.mbm", 40, 41)
icon3 = appuifw.Icon(u"z:\\system\\data\\avkon.mbm", 30, 31)
icon4 = appuifw.Icon(u"z:\\system\\data\\avkon.mbm", 32, 33)
icon5 = appuifw.Icon(u"z:\\system\\data\\avkon.mbm", 34, 35)
icon6 = appuifw.Icon(u"z:\\system\\data\\avkon.mbm", 36, 37)
icon7 = appuifw.Icon(u"z:\\system\\data\\avkon.mbm", 38, 39)
# create
your content list of your lb including the icons to be used for each entry
entries = [(u"Signal", icon1),
(u"Battery", icon2),
(u"Sirene", icon3),
(u"Waste", icon4),
(u"Helicopter", icon5),
(u"Train", icon6),
(u"Auto", icon7)]
# create
the lb callback handler
def handler():
print "done"
# create an instance of appuifw.Lb(), include the content list "entries" and the callback function "handler"
app1 = appuifw.Lb(entries,handler)
# define
application 2: lb app
# define the list of items as pop-up menu content
L2 = [u"Stefan", u"Holger", u"Emil", u"Ludger"]
# create
the lb callback handler
def handler_L2():
print "ola"
# create the pop-up menu
app2 = appuifw.Lb(L2, handler_L2)
# define application 3: draw application
def
app_3():
global draw
img=Image.new((176,208))
img.line((20,20,20,120),0xff00ee)
img.rectangle((40,60,50,80),0xff0000)
img.point((50.,150.),0xff0000,width=40)
img.ellipse((100,150,150,180),0x0000ff)
img.text((100,80), u'hello')
# define your redraw function (still
belonging to app 3)
def handle_redraw(rect):
#global draw
draw.blit(img)
# define the draw, include the redraw
callback function
draw =appuifw.Draw(event_callback=None,
redraw_callback=handle_redraw)
appuifw.app.body = draw
def exit_key_handler():
app_lock.signal()
# create a tab handler that switches the application based on what tab is selected
def handle_tab(index):
global lb
if index == 0:
appuifw.app.body = app1 # switch to application 1
if index == 1:
appuifw.app.body = app2 # switch to application 2
if index == 2:
app_3() # switch to application 3
# create an Active Object
app_lock = e32.Ao_lock()
# create the tabs with its names in unicode as a list, include the tab handler
appuifw.app.set_tabs([u"One", u"Two", u"Three"],handle_tab)
# set the title of the script
appuifw.app.title = u'Tabs advanced'
# set
app.body to app1 (for start of script)
appuifw.app.body = app1
appuifw.app.exit_key_handler
= exit_key_handler
app_lock.wait()
----------------------------------------------------------------
Read Data Of an Incoming SMS
# This script waits for an incoming sms, reads it
#import the module inbox (that handles incoming sms things)
import inbox
import e32
import appuifw
#create a function that does the content sms reading
def read_sms(id):
e32.ao_sleep(0.1)
# create once more an instance of the inbox() class
i=inbox.Inbox()
# read the content out of the message that has just arrived
sms_text = i.content(id)
# display the content inside a pop-up note
print sms_text
if sms_text=="Hi! Please send this message to 50141 to get your information. The numbers have changed as per a Govt. order. You have not been charged for this message.":
print "Hello"
else:
print "Else executed!"
# create an instance of the inbox() class
i=inbox.Inbox()
print "send now sms to this phone"
# put the phone into waiting stage to wait for an incoming message
i.bind(read_sms)
----------------------------------------------------------------
Get Number of the SMS Sender
import contacts #import contact db
db = contacts.open() #store in a variable "db"
def getSenderNum(sms_sender):
found = db.find(sms_sender) #find in database the contact name
try: found #check if found
except NameError:
senderData = found[0]
senderNum = senderData.find("mobile_number")[0].value
else:
senderNum = sms_sender
return senderNum
#now all you have to do is assign a variable the number of that contact name
mobileNum = getSenderNum(contactName)
#change contactName to whatever variable you stored your ripped contact