Nokioteca [Nokia] Forum: [c++] Chiamata Automatica - Nokioteca [Nokia] Forum

Salta al contenuto

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

[c++] Chiamata Automatica Chiamata Automatica

#1 L   crashboy22 

  • Newbie
  • Punto
  • Gruppo: Utente
  • Messaggi: 7
  • Iscritto: 29 aprile 2009

Inviato 29 aprile 2009 - 18:26

Salve a tutti.

Non so se avete già trattato questo argomento in passato, io non ho trovato molto onestamente, quindi chiedo scusa se apro un nuovo topic.

Io dovrei lanciare una chiamata automatica verso un numero preimpostato per n secondi, in pratica devo fare uno squillo. Naturalmente l'utente non deve ogni volta (come succede con J2ME) consentire la chiamata.

Uso Carbide.C++ se può essere di aiuto.

Grazie per eventuali risposte e non

:king:
0

#2 L   Il.Socio 

  • Nokioteca Staff
  • Gruppo: Moderatore
  • Messaggi: 7144
  • Iscritto: 02 dicembre 2005
  • Località:Torino
  • Cellulare:N8-00

Inviato 29 aprile 2009 - 19:40

Non credo arriveranno molte risposte, piu' che altro perche' hai dimenticato di fare una qualsivoglia domanda... :D


Qui trovi del codice generico per effettuare una chiamata:
Per visualizzare questo link registrati o esegui il log in.

Messaggio modificato da Il.Socio il 29 aprile 2009 - 19:42

Per segnalare allo Staff un messaggio non conforme al regolamento è sufficiente premere il bottone "Segnala" posizionato in basso a sinistra di ciascun messaggio.
0

#3 L   crashboy22 

  • Newbie
  • Punto
  • Gruppo: Utente
  • Messaggi: 7
  • Iscritto: 29 aprile 2009

Inviato 30 aprile 2009 - 11:43

Ti ringrazio gentilissimo.

Ottimo forum


Visualizza Messaggicrashboy22, il 29/04/2009 - 19:26, ha scritto:

Salve a tutti.

Non so se avete già trattato questo argomento in passato, io non ho trovato molto onestamente, quindi chiedo scusa se apro un nuovo topic.

Io dovrei lanciare una chiamata automatica verso un numero preimpostato per n secondi, in pratica devo fare uno squillo. Naturalmente l'utente non deve ogni volta (come succede con J2ME) consentire la chiamata.

Uso Carbide.C++ se può essere di aiuto.

Grazie per eventuali risposte e non

:mumble:

0

#4 L   crashboy22 

  • Newbie
  • Punto
  • Gruppo: Utente
  • Messaggi: 7
  • Iscritto: 29 aprile 2009

Inviato 30 aprile 2009 - 13:38

Ragazzi dopo un pò di prove sono riuscito a compilare il tutto. Ora però dovrei inserire il numero da chiamare, mi sapete dire qual'è la variabile e come la fisso?

Grazie

Code Makecall.cpp

CCallDialer::~CCallDialer()
{
Cancel();
delete iTelephony;
}

void CCallDialer::ConstructL(const TDesC& aNumber)
{
iTelephony = CTelephony::NewL();
CTelephony::TTelNumber telNumber(aNumber);

iCallParams.iIdRestrict = CTelephony::ESendMyId;

iTelephony->DialNewCall(iStatus, iCallParamsPckg, telNumber, iCallId);
SetActive();
}

CCallDialer::CCallDialer(MDialObserver& aObserver)
: CActive(EPriorityNormal),iObserver(aObserver), iCallParamsPckg(iCallParams)
{
CActiveScheduler::Add(this);
}

void CCallDialer::RunL()
{
iObserver.CallDialedL(iStatus.Int());
}

void CCallDialer::DoCancel()
{
iTelephony->CancelAsync(CTelephony::EDialNewCallCancel);
}
0

#5 L   madhacker 

  • Senior Member
  • PuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 527
  • Iscritto: 16 settembre 2006
  • Cellulare:N95-2,5800

Inviato 30 aprile 2009 - 15:40

credo che dovrai richiamare
ConstructL(_L("3331234567"));

0

#6 L   crashboy22 

  • Newbie
  • Punto
  • Gruppo: Utente
  • Messaggi: 7
  • Iscritto: 29 aprile 2009

Inviato 30 aprile 2009 - 16:38

Ragazzi grazie per la pazienza.

Ho trovato questo codice al sito :
Per visualizzare questo link registrati o esegui il log in.


Ho creato gli header ed ho linkato le librerie nel file .mmp ed ecco durante il build che errore mi da :

Creation Time Description Resource Path Location Type
1241105803487 Multiply defined section: CClientApp::CClientApp(class CTelephony *) (??0CClientApp@@QAE@PAVCTelephony@@@Z) in cclientapp Unknown C/C++ Problem
1241105803507 files cclientapp.o, cclientapp.o cclientapp Unknown C/C++ Problem
1241105803527 Multiply defined section: void CClientApp::SomeFunction(void) (?SomeFunction@CClientApp@@QAEXXZ) in cclientapp Unknown C/C++ Problem
1241105803547 Multiply defined section: void CClientApp::RunL(void) (?RunL@CClientApp@@EAEXXZ) in cclientapp Unknown C/C++ Problem
1241105803567 Multiply defined section: void CClientApp::DoCancel(void) (?DoCancel@CClientApp@@EAEXXZ) in cclientapp Unknown C/C++ Problem
1241105803727 Undefined symbol: 'int E32Main(void) (?E32Main@@YAHXZ)' cclientapp Unknown C/C++ Problem

Onestamente credo che il codice sia giusto ma forse data la mia pochissima esperienza non ho fatto qualcosa per farlo funzionare bene.


#include <e32base.h>
#include <Etel3rdParty.h>

_LIT(KTheNumber, "123456789");

class CClientApp : public CActive
{

private:
CTelephony* iTelephony;
CTelephony::TCallId iCallId;

public:
CClientApp(CTelephony* aTelephony);
void SomeFunction();

private:
/*
These are the pure virtual methods from CActive that
MUST be implemented by all active objects
*/
void RunL();
void DoCancel();
};

CClientApp::CClientApp(CTelephony* aTelephony)
: CActive(EPriorityStandard),
iTelephony(aTelephony)
{
//default constructor
}

void CClientApp::SomeFunction()
{
CTelephony::TTelNumber telNumber(KTheNumber);

CTelephony::TCallParamsV1 callParams;
callParams.iIdRestrict = CTelephony::ESendMyId;
CTelephony::TCallParamsV1Pckg callParamsPckg(callParams);

iTelephony->DialNewCall(iStatus, callParamsPckg, telNumber, iCallId);
SetActive();
}

void CClientApp::RunL()
{
if(iStatus==KErrNone)
{} // The call has been dialled successfully;
// iCallId contains the call's ID, needed when controlling the call.
}

void CClientApp::DoCancel()
{
iTelephony->CancelAsync(CTelephony::EDialNewCallCancel);
}
0

#7 L   crashboy22 

  • Newbie
  • Punto
  • Gruppo: Utente
  • Messaggi: 7
  • Iscritto: 29 aprile 2009

Inviato 30 aprile 2009 - 17:35

Ora ho provato con alcune modifiche è l'errore è questo. Scusate per le autorisposte.

Creation Time Description Resource Path Location Type
1241109055029 \src\cedar\generic\base\e32\compsupp\symaehabi\callfirstprocessfn.cpp:(.text+0x48): undefined reference to `E32Main()' kim line 0 C/C++ Problem
0

#8 L   memoryn70 

  • Millennium Member
  • Gruppo: Developer
  • Messaggi: 2112
  • Iscritto: 02 maggio 2007
  • Cellulare:Nokia N70
  • Firmware:5.0609.2.0.1

Inviato 02 maggio 2009 - 13:04

Visualizza Messaggicrashboy22, il 30/04/2009 - 18:35, ha scritto:

Ora ho provato con alcune modifiche è l'errore è questo. Scusate per le autorisposte.

Creation Time Description Resource Path Location Type
1241109055029 \src\cedar\generic\base\e32\compsupp\symaehabi\callfirstprocessfn.cpp:(.text+0x48): undefined reference to `E32Main()' kim line 0 C/C++ Problem


Ti sei forse dimenticato di linkare alcune librerie?
0

#9 L   madhacker 

  • Senior Member
  • PuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 527
  • Iscritto: 16 settembre 2006
  • Cellulare:N95-2,5800

Inviato 03 maggio 2009 - 12:15

Quote

Remember to link to the Etel3rdParty.lib and euser.lib libraries.

hai linkato queste 2 librerie?? ovvero nel file mmp
LIBRARY Etel3rdParty euser.lib

0

#10 L   crashboy22 

  • Newbie
  • Punto
  • Gruppo: Utente
  • Messaggi: 7
  • Iscritto: 29 aprile 2009

Inviato 04 maggio 2009 - 17:29

Grazie, benissimo, sono riuscito a compilarlo. Ora che voi sappiate è possibile nascondere la chiamata in atto senza che l'utente si accorga di nulla e possa continuare ad usare il cellulare per fatti suoi?
0

#11 L   Il.Socio 

  • Nokioteca Staff
  • Gruppo: Moderatore
  • Messaggi: 7144
  • Iscritto: 02 dicembre 2005
  • Località:Torino
  • Cellulare:N8-00

Inviato 04 maggio 2009 - 18:40

No, afaik, non e' possibile perche' nonappena accedi al menu', sara' sicuramente visualizzato il popup che indica la chiamata, quindi l'utilizzatore si accorgera' dell'esistenza di una chiamata in corso.

Messaggio modificato da Il.Socio il 04 maggio 2009 - 18:41

Per segnalare allo Staff un messaggio non conforme al regolamento è sufficiente premere il bottone "Segnala" posizionato in basso a sinistra di ciascun messaggio.
0

#12 L   crashboy22 

  • Newbie
  • Punto
  • Gruppo: Utente
  • Messaggi: 7
  • Iscritto: 29 aprile 2009

Inviato 05 maggio 2009 - 09:36

Grazie per la risposta. Per me non è un problema, anche perchè potrei (credo) tenere spenta la luce del tel. Scusate ho un problema, il codice sotto indicato non mi fa partire la chiamata, sbaglio qualcosa secondo voi?

#include <eikstart.h>
#include "helloApplication.h"
#include <e32base.h>
#include <Etel3rdParty.h>


LOCAL_C CApaApplication* NewApplication()
{
return new ChelloApplication;
}

GLDEF_C TInt E32Main()
{
return EikStart::RunApplication(NewApplication);
}

_LIT(KTheNumber, "1234565789");

class CClientApp : public CActive
{

private:
CTelephony* iTelephony;
CTelephony::TCallId iCallId;

public:
CClientApp(CTelephony* aTelephony);
void SomeFunction();

private:
/*
These are the pure virtual methods from CActive that
MUST be implemented by all active objects
*/
void RunL();
void DoCancel();
};

CClientApp::CClientApp(CTelephony* aTelephony)
: CActive(EPriorityStandard),
iTelephony(aTelephony)
{
//default constructor
}

void CClientApp::SomeFunction()
{
CTelephony::TTelNumber telNumber(KTheNumber);

CTelephony::TCallParamsV1 callParams;
callParams.iIdRestrict = CTelephony::ESendMyId;
CTelephony::TCallParamsV1Pckg callParamsPckg(callParams);

iTelephony->DialNewCall(iStatus, callParamsPckg, telNumber, iCallId);
SetActive();
}

void CClientApp::RunL()
{
if(iStatus==KErrNone)
{} // The call has been dialled successfully;
// iCallId contains the call's ID, needed when controlling the call.
}

void CClientApp::DoCancel()
{
iTelephony->CancelAsync(CTelephony::EDialNewCallCancel);
}
0

Condividi questa discussione:


Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione