sabato 29 maggio 2010

Compact Framework, rilevare il numero di telefono della chiamata che si sta effettuando

Il frammento di codice qui di seguito, illustra una tecnica di come rilevare il numero di telefono della chiamata che si sta effettuando il tutto tramite il linguaggio VB.Net


Imports Microsoft.WindowsMobile.Status


Imports Microsoft.WindowsMobile.Telephony


'oggetto per la gestione dello stato


Dim stato As New SystemState(SystemProperty.PhoneTalkingCallerNumber)


'funzione che rileva il numero di telefono


Public Sub NotificatDiCambiamento(ByVal sender As Object, ByVal args As ChangeEventArgs)


Dim state As SystemState = CType(sender, SystemState)


MessageBox.Show("Numero che si sta chiamdno: " & args.NewValue.ToString())


End Sub



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


Dim phnTelefono As New Phone()


phnTelefono.Talk("4250010001")


End Sub


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


'aggiungo un gestore di evento


AddHandler stato.Changed, AddressOf NotificatDiCambiamento


End Sub



Come si vede dal codice, si è creato un oggetto di tipo systemstate, riguardante lo stato di chiamata.


Nell'evento load della form, si è creato un gestore di evento, nel caso lo stato del dispositivo mobile cambia, e precisamente nel momento in cui viene effettuata la chiamata viene eseguito il metodo "notificaDiCambiamento" in questo modo possiamo rilevare il numero che stiamo chiamando


L'evento click del pulsante, effettua una chiamata in modo che viene notificato il cambiamento di stato.

2 commenti:

Anonimo ha detto...

Ciao Emanuele,
ho riutilizzato il tuo codice (quindi prima di tutto grazie mille!), però ho notato che l'evento si genera anche se mi chiamano e rispondo...come mai?
Grazie mille

Emanuele ha detto...

Il codice, riguarda le chiamate che si ricevono, a te cosa serviva di preciso? in uscita o entrata?