Phase 3

(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