ForumCommunity

Creare programmi per comunicare con il cellulare

« Older   Newer »
  Share  
bradipo.7
view post Posted on 6/8/2007, 13:22




We,

ho visto che in questo forum siete molto esperti a creare dei programmi per lavorare con il cellulare, vi volevo chiedere non è che avete qualche tip da darmi per iniziare a creare programmini tipo riavviare il cellulare o leggere una seem.

Il mio linguaggio è il CSharp (C#).

Ringrazio tuti coloro che mi risponderanno
 
Top
lucameloni91
view post Posted on 7/8/2007, 19:45




ehehe lo c sharp è simile al vb.net x certi versi, però sinceramente nn so se con c sharp si può usare la libreria p2kapi...ora mi informo e vedo ;)

guarda qui ;)
 
Top
flash.tato
view post Posted on 10/8/2007, 16:13




Prova a usare questo wrapper, nn l'ho testato perchè al momento non dispongo di un IDE per il linguaggio C# con cui compilare.

Non ho dichiarato tutte le funzioni, ma se capisci come funziona il P/Invoke dovresti aver capito :)

CODICE
/*
* P2KAPI Wrapper
* Written by: flash.tato
* Description: a wrapper for using P2KAPI's function in C#
* P2KAPI Copyright (c) dwALX, Vilko, s5vi, motoprogger
* P2KAPI Wrapper Copyright (c) flash.tato
*/

using System.Runtime.InteropServices;

class p2kapiw{

const string lib = "p2kapi2.dll"; //Libreria

/*
P2K_Init
Description: start monitoring USB Devices
@param, StatusProc: it is a pointer to a function that will be called on phone detect/disconnect, it can be 0 if pointer to function is not needed
@return: 0 on success, 1 on failure
*/
[DllImport(lib)]
static extern int P2K_Init(IntPtr StatusProc);

/*
P2K_GetStatus
Description: get the status of P2K Device
@return: 1 phone found, 0 not found
*/
[DllImport(lib)]
static extern int P2K_GetStatus();

/*
P2K_Restart
Description: restart the phone
@return: no value returned
*/
[DllImport(lib)]
static extern int P2K_Restart();

/*
P2K_Suspend
Description: switch the phone to suspended mode
@return: no value returned
*/
[DllImport(lib)]
static extern int P2K_Suspend();

/*
File_GetFreeSpace
Description: Get the free space on the phone
@param, Disk: a string to volume name, eg. "/a/"
@return: Return the freespace of volume name
*/
[DllImport(lib)]
static extern int P2K_GetFreeSpace([MarshalAs(UnmanagedType.LPStr)] string Disk);

/*
Mode_SwitchToAT
Description: switches the phone from P2K to AT Mode
@return: no value returned
*/
[DllImport(lib)]
static extern int Mode_SwitchToAT();

/*
Mode_SwitchToP2K
Description: switches from AT to p2K Mode
@param,StatusProc: pointer to function
@return: no value returned
*/
[DllImport(lib)]
static extern int Mode_SwitchToP2K(IntPtr StatusProc);

}


Provalo e fammi sapere se và ;)

Edited by flash.tato - 10/8/2007, 17:57
 
Top
bradipo.7
view post Posted on 11/8/2007, 14:14




Questo è un wrapper per la P2KAPI giusto.

Cmq io ho provato a ottenere lo stato de cellulare con P2K_GetStatus() ma mi ritorna sempre 0 nonostante il cellulare sia connesso (e gli altri programmi che usano la P2KAPI me lo vedano come connesso).

CODICE
int status = P2K_GetStatus();
switch (status)
{
 case 0:
 Label1.Text = "Disconnesso";
 break;
 case 1:
 Label1.Text = "Connesso";
 break;
}
 
Top
fabo92™
view post Posted on 11/8/2007, 14:32




Forse questo ti può essere d'aiuto ;) Lo ha scritto sempre flash.tato su motorola forum team ;)

CITAZIONE
Ricordo solo una cosa, che adesso in C# per dichiarare una variabile IntPtr dovrete fare così:
CODICE
IntPtr myptr = new IntPtr(0);
         Console.WriteLine("p2kapi.P2K_Init: " + P2K_Init(myptr));
         Console.WriteLine("p2kapi.P2K_GetStatus: " + P2K_GetStatus());
         Console.ReadLine();


Visto che in C# non viene castato di default ;)

 
Top
Andre_flex
view post Posted on 12/8/2007, 18:15




e per il c++???
 
Top
flash.tato
view post Posted on 13/8/2007, 14:14




Oppure:
CODICE
Console.WriteLine("p2kapi.P2K_Init: " + P2K_Init(IntPtr.Zero));
        Console.WriteLine("p2kapi.P2K_GetStatus: " + P2K_GetStatus());
        Console.ReadLine();


Invece di inizializzare una nuova variabile.

@andre_flex: il C++ lo conosco poco, magari quando ho tempo provo a fare qualcosa.
 
Top
danieleds
view post Posted on 5/1/2008, 14:40




Ciao a tutti, sono nuovo del forum.
Sono uno sviluppatore VB.NET/VB 2005 ed ho provato ad usare le p2kapi.
Riesco a connettere il telefono, ad ottenere lo stato, soltanto che non capisco dove sbaglio quando voglio agire con i files e le directory.
Ad esempio, se io volessi creare una directory, farei così:
Prima la dichiarazione
CODICE
Public Declare Function File_CreateDir Lib "p2kapi2.dll" (ByVal
FileName As String, ByVal Attribute As Byte) As Integer

oltre alle altre necessarie.
Quindi inizializzo la connessione con Init e verifico che il telefono sia effettivamente connesso con GetStatus.
Ma se provo a fare
CODICE
File_CreateDir("/a/ciao/", 0)

ottengo il seguente errore a runtime:
FatalExecutionEngineError
Errore irreversibile di runtime. Indirizzo dell'errore 0x79e71bd7, nel
thread 0x9640. Codice di errore 0xc0000005. Questo errore potrebbe
essere un problema esistente in CLR o nelle parti unsafe o non
verificabili del codice utente. Tra le cause comuni di questo problema
sono inclusi errori dell'utente nel marshalling per l'interoperabilità
COM o PInvoke, che possono danneggiare lo stack.

Ciao e grazie anticipatamente!
 
Top
7 replies since 6/8/2007, 13:22   226 views
  Share