Jumping Jack Flash weblog

Esportazione appunti (Jotter) da cellulari Symbian UIQ 2.x (p800, p900, Motorola a1000)

Posted in Motorola a1000, Programmazione, Symbian, Symbian UIQ by jumpjack on 21 febbraio 2008

I telefoni UIQ 2.x usano per gli appunti un formato particolare, probabilmente proprieario, binario,
incompatibile con qualunque altra applicazione. Su alcuni modelli è FORSE possibile esportali tramite
SyncML, ma in ogni caso non sul mio Motorola a1000.

Questo è uno studio di reverse engineering sul formato del jotter, che dovrebbe portare, con l’aiuto di chi legge,
a scrivere un programma per PC in grado di esportare le note del Jotter.

Gli appunti sono organizzati su due file:

c:\system\apps\jotter\jotter.ini  File delle categorie

c:\documents\jotter\jotter  File dei dati

Il file jotter.ini sembra contenere il percorso c:\documents\jotter\jotter tante volte quante sono le
categorie esistenti, incluse quelle predefinite Generale e Personale.

E’ inoltre presente l’elenco delle categorie; ogni entry è formato da:

un  byte che indica la lunghezza del testo MOLTIPLICATA PER 4 (???)

il testo

4 byte che rappresentano l’UID della categoria; il terzo di questi byte vale 0x10 se la categoria è
“di sistema” (Generale, Personale, e forse un’altra (???)  ).

La categoria “Tutto” ha l’UID speciale ff ff 00 00

Categoria “Personale”: 01 10 00 00

Categoria “Generale”: 02 10 00 00

Sembra che, A VOLTE (???), aggiungendo una nuova categoria, questo elenco non vnga aggiornato, ma quello nuovo viene accodato a quello vecchio.

Le categorie sono elencate in ordine alfabetico.

E’ POSSIBILE che cambiando i percorsi associati alle categorie si possa usare un file Jotter
diverso per ogni categoria (???). Forse bisogna prima creare a mano le cartelle (???).

Il file Jotter contiene i dati degli appunti. Ogni entry è formato da 6 campi (elencati all’inizio del file):

Create_date (8), Update_date (8), Flags (8) , UID (4) , Sketch (6), Text_Jot (xxx)

Le date sono in formato symbian standard (vedi articolo apposito).

I flag sono sempre tutti a 00 00 00 sul mio A1000.

L’UID è ovviamente quello della categoria associata.

“Sketch” è presente solo se c’e’ un disegno associato alla nota

Text_jot è formato da 2 byte:

– se il primo vale 0x00, il secondo indica IL DOPPIO della lunghezza della stringa dell’appunto.

– se il secondo vale 0x40, il primo indica la lunghezza ESATTA della stringa

– se il secondo vale 0x4Y e il primo 0xQR, con Y=qualunque , allora la lunghezza della stringa è data da 0x0YQR

Probabilmente questo schema è descrivibile in un modo piu’ sensato, che al momento non mi viene in mente…

PROBLEMA: non tutti gli appunti rispettano questo schema: alcuni sono semplicemente stringhe
precedute dalla loro lunghezza!

Questo pero’ puo’ dipendere che il Jotter sul mio a1000 è stato “ereditato” dal SonyEricsson p800
che avevo prima, per cui forse c’e’ stato un miscuglio di formati.

PROBLEMA2: bisogna scoprire se esiste una tabella di indirizzi che punta ai vari entry, per individuare
anche quelli “speciali” senza intestaiozne.

Questa prima bozza di programma è in grado di estrarre ALCUNI degli appunti (solo se successivi
al 2003), individuandoli tramite le loro date:

http://www.planetmobile.it/jumpjack/ReadJotter.zip

Scrivere midlet java per accedere all’AGPS del Motorola a1000

Posted in GPS, Java, Motorola a1000, Symbian, Symbian UIQ by jumpjack on 13 gennaio 2008

– scaricare SDK per A925, che per errore contiene le librerie necessarie per compilare programmi che utilizzino le Location
API; l’indirizzo è questo, ma bisogna essere registrati (gratuitamente) su Motocoder.com:
https://developer.motorola.com/docstools/sdks/archive/a925/
il file che serve è C:\Symbian\A925SDK\epoc32\tools\j2me\j2me-debug.zip

– mettere il suddetto  file nella cartella C:\Programmi\programmazione\WTK22\lib (cioè la cartella delle librerie del
Wireless ToolKit v. 2.2; per altre versioni dovrebbe essere analogo)

– dalla cartella C:\Programmi\programmazione\WTK22\lib togliere il file midpapi20.jar e metterlo in un posto sicuro

– rinominare \j2me-debug.zip in midpapi20.jar

– adesso dovrebbe essere possibile compilare sorgenti java che accedono al package com.motorola.location; un esempio
è nella documentazione dell’E1000 , ed è riportato anche in questo forum Bisogna pero’ correggere il sorgente, sostituendo LOCATION_UNAVAILABLE con ERR_UNAVAILABLE alla riga 11.

– purtroppo, come mostra il file .JAD della midlet Locator  di www.geomaia.co.uk (sito morto), per far funzionare tale
midlet sono necessarie 2 cose:

– nel file JAD, nella sezione MIDlet-Permissions: , ci deve essere scritto com.symbian.midp.io.protocol.location   (e questo sarebbe facile)

– però, nel file JAD devono esserci anche, nelle sezioni MIDlet-Certificate-1-1: e MIDlet-Jar-RSA-SHA1: , le chiavi segrete vendute da Motorola/H2G agli sviluppatori! Quindi, ciccia, non si puo’ fare!
…a meno che non sia possibile smanettare opportunamente il firmware dell’a1000, che contiene un file che descrive le
limitazioni di accesso alle librerie java. Questo file fa si’ che, se tentate di installare una midlet che usa le location API
ma non ha la “chiave”, il Sistema vi dica che il server java non lo permette; se usate le chiavi di Locator…. niente da fare,
perche’ sono scadute nel 2006.

Il file del firmware che credo si occupi di stabilire i diritti di accesso dovrebbe essere
Z:\SYSTEM\data\midp2\security\policy\jtwi_r1.xpf . Chi è in grado di modificare il firmware dovrebbe
essere anche in grado di fare qualche esperimento.

In alternativa, sembra che esista un programma MOTOMU che dà i permessi alle midlet, ma non ho capito se
modifica il firmware tramite FLEX o se fa altro…

Il forum originale in cui l’utente TheNext1 ha pubblicato per la prima volta Motomu (è pure un utente italiano!) è questo: http://www.3g.co.uk/3GForum/showthread.php?t=28619 , ma naturalmente, essendo il thread vecchio di BEN due anni, i link per scaricare motomu non funzionano piu’, bisognerà cercarlo in giro…

Vista la difficile reperibilità di Motomu e la difficoltà nello scaricare l’SDK dell’a925, che occupa diverse decine di MB e richiede registrazione, ecco il file j2medebug.zip, e il file AGPS.ZIP che raccoglie, oltre a Motomu, vari programmi utili e che è stato “assemblato” dallo stesso autore di Motomu.

Car anti-theft with Javaphone PDA

Posted in GPS, Java, Javaphone API, jython, Motorola a1000, Symbian, Symbian UIQ by jumpjack on 9 novembre 2007

—>VEDI VERSIONE ITALIANA 

This Jython script turns any Javaphone API supporting PDA into a car-antitheft: once you install this script on the phone, as soon as you call the phone it will send to a predefined number an SMS containing latitude and longitude read from an external GPS bluetooth receiver.

Successfully tested on Motorola a1000; should work on Nokia 9200/9210/9300/9500 (please leave a comment to confirm if you successfully use this program on other phones than a1000) 

What you need:

A PDA/phone with support for PersonalJava/Personal Profile and Javaphone API  (regardless of O.S.);

A Jython version compatible with the phone (try this port for PersonalJava, tested on Motorola A1000);

JavaBT: PersonalJava bluetooth libraries; (JavaBT homepage)

The LC GPS car tracker jython script;

A text file containing the number to send the SMS to; it must be named cellphone.txt;

A text file containing the bluetooth address of your GPS receiver, stored as a sequence of 6 hexadecimal numbers
(for example 000a3a2310c2; you can get your GPS’ address from any bluetooth program installed on your PC). File must be named address.txt;

Once you have all of above:

– Install Jython on your phone (let’s suppose you install it into D:\jython);

– Unpack JavaBT zip package on your PC; copy whole “se” folder into d:\jython folder onto the phone;  copy javabt.dll into
c:\system\libs folder on your phone;

– Copy the jython script into d:\jython folder on the phone

– Copy the above described text files in c:\documents\Media Files\document\LC_GPS_Tracker onto the phone;

– Launch Jython on the phone, and once it’s started use the menu to start the jython script. Wait for “READY.” prompt to appear;

– Turn on your GPS receiver, and keep it within phone bluetooth range;

– Now call your phone: as soon as it receives the call, it will start displaying some debug data on the screen. If all works properly, in a few seconds you should receive the SMS on the predefined number. NOTE: if the GPS got the fix, you’ll see in the message “1,xx” at the end of SMS, with xx=number of satellites; else you’ll see “0,00”.

KNOWN ISSUES:

This program CAN’T work on SonyEricsson P800/p900/p910, as they do not support Javaphone API. If you are interested on a version for these phones, I could try writing a Javaphone-indipendent version, but it would be quite tricky, so I’ll (try to) do it only upon request: don’t forget this program is FREEware!

Avviare applicazione Symbian da Jython

Posted in Java, jython, Motorola a1000, Symbian, Symbian UIQ by jumpjack on 26 ottobre 2007

import java.lang.Runtime

r=java.lang.Runtime.getRuntime()

p=r.exec(“z:\\system\\programs\\apprun.exe c:\\system\\apps\\nome\\nome.app”)

Questo metodo non consente pero’ di avviare applicazioni OPL.

Ricevitori GPS per Motorola a1000

Posted in GPS, Motorola a1000 by jumpjack on 17 aprile 2007

Nel caso del palmare a1000, a differenza di altri, bisogna distinguere tra ricevitori GPS e antenne GPS: l’a1000 è infatti dotato di una presa a cui collegare un’eventuale antenna GPS esterna, in alternativa all’utilizzo di un ricevitore GPS completo esterno, che comunicherebbe invece col cellulare tramite bluetooth. Il vantaggio dell’antenna è ovviamente il prezzo: 20-30 euro contro gli 80-120 di un ricevitore completo.

 Purtroppo sembra che il connettore usato dall’a1000 sia proprietario e incompatibile con qualsiasi connettore commercio, incluci MCX e MMCX, quindi, a meno di “accrocchi” vari, non è possibile collegare al cellulare nessuna antenna esterna.

Occorre quindi ripiegare su un piu’ costoso ricevitore.

Qui cerchero’ di elencare tutti quelli che sono stati provati sull’a1000, con i relativi risultati. Cliccando sui link si aprono finestre separate, per permettere i dovuti confronti.

Marca Modello Prezzo (apr
2007)
Chipset canali firmware a1000 commento
Marca Modello   Chipset canali firmware
a1000
commento
??? Bt-338 € 93,00 ??? ??? ??? ottimo
HOLUX GPSlìm 236
 
SirfStar
III
??? 51.14.15,54.07.00 TTM5
ok R66 ok, ottimo
GLOBALSAT bt 308 € 80,00 SIRF
II
??? ??? ottimo
Global Sat BT 359 € 85,00 ??? ??? ??? ottimo
Royaltek 2100 € 60,00 SIRFStarIII ??? ??? ottimo
RoyalTek  BT – Xtrac2 – RBT-1000 € 80,00 ??? ??? ??? ok
Ebontek  eGPS-397   Nemerix ??? 51.14.15,51.95.00 TT5
Ok R66 Ok
NAVILOCK GPS-Mouse
Bluetooth BT-308
  ??? ??? 51.14.15,51.95.00 TTM5
Ok R66 Ok
RIKALINE GPS-6033   ??? 32
CANALI

 

51.14.15
TT5
OK R66 non testato
GPS Sprint ???   Sirf
3
??? ??? TT5
ok
Fortuna Slim   III  20
canali 

 

51.14.15
ok
navicore ???   sirf
III
??? ??? ok
Jentro BT-GPS-8   ??? ??? ??? ok
Leadtek LR9553X € 108,00 ??? ???
 

54.08.00
tt5
ok , r66 ko
leadtek 9553   sirfstar
3
20
canali
??? ok
Connecto BT-74R  € 90,00 RFMD 32
canali
??? ok
con TT5 e Nhgps, Mapview si blocca
Super III bt74r   ??? ??? ??? fix
lento (10 minuti), niente disconnessioni
??? GP
27
  Nemerix  ??? ??? no
??? GPS
BT
  SONY
CXD 2951 
???
 

51.14.15
no
Hamlet  HBTGPS   ??? ??? ??? no
??? BTG-7000   ??? ??? ??? no
WONDE XL   Nemerix 16
Canali
??? no 
??? BT77    nemerix  16
canali

 

51.14.15
no
             

Commenti disabilitati su Ricevitori GPS per Motorola a1000

AT commands tested on Motorola a1000

Posted in at commands, Motorola a1000 by jumpjack on 6 marzo 2007

AT commands tested on Motorola a1000 using Windows Hyperterminal in TTY emulation
Tests made on february 2007 based on Motorola C18 at commands reference

“Mode 0” = command wokrs with phone in mode 0 (default)
“Mode 2” = command wokrs with phone in mode 2  (AT+MODE=2)
“0 = not sup” = command results in “not supported” message if used in mode 0 (use AT+CMEE=2 for full text error messages)
“0 = unk” = command results in “unknown” message if used in mode 0
“???” = strange results
Numbers after ATSx commands show commands results.

———

Subscriber Unit Identity
+gmi mode0,2
+fmi mode 0,2
+cgmi mode 0,2
+gmm mode 0,2
+gmr mode 0,2
+cgsn mode 0,2
+gsn  0,2=not sup
+cscs mode 0,2
+cimi mode 0,2
+cnum  0=not sup , 2 = ???
+mgfv 0,2=unk

Capability reporting
+maid 0=not sup, 2 = 1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0
+mpdpm 0=not sup, 2 = 0
+mapv 0=not sup, 2=2.29.0

Call control
+cdv 0,2=not sup
+css 0,2 = not sup
+cso 0,2=not sup
+atd 0= NO CARRIER, 2 not sup

Call status
+cpas 0=????, 2 = not sup

———Additional call processing (not tested)

———Directory Access (not tested)

———Date book access (not tested)

System Date and Time Access
+cclk 0 = risultati strani, 2= ok

———SMS (not tested)
Network service
+creg 0,2=not sup
+csq 0=ok (FER = 99), 2 =not sup

Hardware information
+gcap 0=FCLASS
+at&cx Mode 0; 2=NOT SUP
+cbc Mode 0,2

Audio tone
+crtt 0,2=unk
+mcrs 0,2=unk
+vts 0,2=not sup
+vtd 0,2=not sup

——-Audio control (not tested)

Access control
+mlck 0,2=unk
+mpin 0,2=not sup

Modem register
at&f mode 0
at&v 0=not sup
atv mode 0
atq mode 0
ate mode 0
atx mode 0
ats0 000
ats3 013
ats4 010
ats5 008
ats6 002
ats7 030
ats8 002
ats9 006
ats10 014
ats11 095
ats12 050
ats13 000
ats14 170
ats15 000
ats16 128
ats17 000
ats18 000
ats19 000
ats20 000
ats21 048
ats22 246
ats23 027
ats24 000
ats25 005
ats26 001
ats27 009
ats28 000
ats29 000
ats30 000
ats31 000
ats32 000
ats33 000
ats34 000
ats35 000
ats36 005
ats37 000
ats38 020
ats39 000
ats40 192
ats41 003
ats42 000
ats43 000
ats44 003
ats45 000
ats46 138
ats47 000
ats48 007
ats49 008
atz mode 0
atw not tested

Error handling
+cms 0=unk
+eb 0=not sup
+cme not tested
+cmee mode 0

MNAM programming
+mnam 0,2=unk
+snam 0,2=unk

+cparm 0,2=unk

+ilrr 0,2=not sup
+icf 0=not sup
+ctty 0=unk

+cimsi 0=unk

+moon 0=unk

$qcscrm 0=not sup
$qcmdr 0=not sup
+goi 0=not sup

Ricercare contatto in rubrica con Javaphone API

Posted in Java, Javaphone API, Motorola a1000, Symbian, Symbian UIQ by jumpjack on 26 febbraio 2007

cdb = javax.pim.addressbook.ContactDatabase()

db = cdb.openDatabase() # Apre database di default

dbnames = cdb.getDatabaseNames() # elenca db disponibili

scorre i vari items:

cis = ecd.items()

ci = cis.next()

Crea gruppo (=categoria su a1000):

g = javax.pim.addressbook.ContactGroup()

aggiunge card (precedentemente creata o trovata) al gruppo:

g.addContact(c)

imposta nome gruppo:

g.setFormattedName(“nome”)

Trova nominativo “tizio” in campo “N”:

nomi = ecd.items(“N”,”tizio”)

nomi.next().getName() # mostra nome/i trovato/i

Scaricare file tramite HTTP

Posted in Java, jython, Motorola a1000, Symbian, Symbian UIQ by jumpjack on 25 febbraio 2007

Scaricare file tramite HTTP

(INCOMPLETO)

import os
import java.lang
import java.lang.String
import java.net.URL
import java.net.HttpURLConnection
import jarray
import java.io.BufferedOutputStream
import java.io.FileOutputStream

class test(java.awt.Frame):
def __init__(self):
self.size=(208,276)
self.myOutput=java.awt.TextArea(“Test \n\n”)
self.add(“Center”,self.myOutput)
self.myMenuBar=java.awt.MenuBar()
self.myMenu=java.awt.Menu(“Menu”)
self.myReadFile=java.awt.MenuItem(“Verifica”,actionPerformed=self.doRead)
self.myMenuExit=java.awt.MenuItem(“Exit”,actionPerformed=self.doExit)
self.myMenuBar.add(self.myMenu)
self.myMenu.add(self.myReadFile)
self.myMenu.add(self.myMenuExit)
self.setMenuBar(self.myMenuBar)
self.setVisible(1)
def doRead(self,event):
h = java.net.HttpURLConnection
u = java.net.URL
bos = java.io.BufferedOutputStream
fos = java.io.FileOutputStream
url = u(“http://jumpjack.altervista.org/index.html”)
self.myOutput.appendText(“opening conncetion…\n”)
conn = url.openConnection()
self.myOutput.appendText(“getting stream…\n”)
i = conn.getInputStream()
self.myOutput.appendText(“opening output file…\n”)
o = bos(fos(“d:\\jython\\google.txt”))
self.myOutput.appendText(“start reading…\n”)
buffer = jarray.zeros(1024,’b’)
numWritten = 0
numRead = i.read(buffer)
while numRead != -1:
o.write(buffer)
numWritten += numRead
self.myOutput.appendText(“1024 bytes read…\n”)
numRead = i.read(buffer)
self.myOutput.appendText(“Completed.\n”)
o.write(buffer)
i.close()
o.close()

def doExit(self,event):
java.lang.System.exit(0)
if __name__==”__main__”:
myApp=test()

Appunti su invio SMS con l’a1000 tramite comandi AT

Posted in Motorola a1000, Symbian, Symbian UIQ by jumpjack on 23 febbraio 2007

Da http://www.multitech.com/DOCUMENTS/Collateral/manuals/S000371B.pdf (ottima guida generale):
Abbreviazioni:
ME = Mobile Equipment
MS = Mobile Station
TA = Terminal Adapter (equivalent to Mobile Equipment (ME) which stands for the GSM module described here. It uses GSM default alphabet as its character set.)
DCE = Data Communication Equipment
TE = Terminal Equipment (TE is the device connected to the TA via serial interface. In most cases TE is an ANSI/ASCII terminal thatdoes not fully support the GSM default alphabet, for example MS Hyperterminal)
DTE = Data Terminal Equipment

Terminal Equipment - Terminal Adaptor - Mobile Equipment

CAUTION: ASCII alphabet (TE) is not GSM alphabet (TA/ME)

Several problems resulting from the use of GSM alphabet with ASCII terminal equipment:
• “@” character with GSM alphabet value 0 is not printable by an ASCII terminal program (e.g., Microsoft©
Hyperterminal®).
• “@” character with GSM alphabet value 0 will terminate any C string! This is because the 0 is defined as C
string end tag. Therefore, the GSM Null character may cause problems on application level when using a
‘C’- function as “strlen()”. This can be avoided if it is represented by an escape sequence as shown in the
table below.
By the way, this may be the reason why even network providers often replace “@”with “@=*” in their SIM
application.
• Other characters of the GSM alphabet are misinterpreted by an ASCII terminal program. For example, GSM
“ö” (as in “Börse”) is assumed to be “|” in ASCII, thus resulting in “B|rse”. This is because both alphabets
mean different characters with values hex. 7C or 00 and so on.
• In addition, decimal 17 and 19 which are used as XON/XOFF control characters when software flow control
is activated, are interpreted as normal characters in the GSM alphabet.
—>non usare XON/XOFF per comunicare col cellulare!!!

Table 1.5: Examples for character definitions depending on alphabet
GSM 03.38 character, GSM character hex. value, Corresponding ASCII character, ASCII Esc sequence, Hex Esc sequence
Ö, 5C, \ \5C, 5C ,35 ,43
“ ,22, “ ,\22 ,5C, 32 ,32
ò, 08, BSP, 8, 5C, 30, 38
@, 00, NULL, 0, 5C, 30, 30
CAUTION: Often, the editors of terminal programs do not recognize escape sequences. In this case, an escape
sequence will be handled as normal characters. The most common workaround to this problem is to write a
script which includes a decimal code instead of an escape sequence. This way you can write, for example, short
messages which may contain differently coded characters.

———- INIZIO PROVE ————

Sembra che i Motorola adottino un sistema proprietario (“manufacturer specific”) per inviare messaggi tramite comandi AT (AT+CSMS –> 128,1,1,1) .
Sembra anche che si debba per forza PRIMA scriverli in memoria (AT+CMGW) e che si debba usare numeri con notazione internazionale (+39…)

Ho fatto questi test usando Hyperterminal dopo aver sbloccato la porta da Mrouter, e configurando hyperterminal cosi’:
porta:
com23 (ma varia a seconda di quando/come si connette il cell…)
921600 bps
8,n,1
senza controllo di flusso

Emulazione terminale: TTY (senza nessuna configurazione particolare)

Risultati:
–>AT+CSMS
+CSMS: 128,1,1,1 (MODO PROPRIETARIO, Mobile Terminated, Mobile Originated, Broadcast type)

Comando AT+CPMS (memoria preferita):
–>AT+CPMS=mem1[,mem2[,mem3]]
mem1 = memoria da cui i messaggi sono LETTI e CANCELLATI
mem2 = memoria in cui SCRIVERE e da cui INVIARE
mem3 = memoria in cui RICEVERE i messaggi

Risultato:
–>AT+CPMS=?
+CPMS: (“MT”,”IM”,”OM”,”BM”,”DM”),(“OM”,”DM”),(“IM”)
MT = totale
IM = INBOX
OM = OUTBOX
BM = BROADCAST
DM = DRAFT
OK

–>AT+CMGW=”+393331234567″
> prova
> pippo
> [CTRL+Z]
+CMGW: 6

at+cpms=”OM”
+CPMS: 2,88
at+cmgl=”STO UNSENT”
OK

at+cpms=”OM”,”DM”
+CPMS: 2,88,3,88
at+cmgd=6
+CMS ERROR: invalid preferred memory storage
at+cpms=”DM”
+CPMS: 3,88

OK
at+cmgd=6
OK
(cioe’ posso cancellare da DM ma non da OM?)

at+cpms=”DM”,”OM”
+CPMS: 2,88,2,88

OK
at+cmgl=?
+CMGL: (“REC UNREAD”, “REC READ”, “STO UNSENT”, “STO SENT”, “ALL”)

OK
at+cmgl=”STO UNSENT”
+CMS ERROR: operation not allowed
at+cpms=”OM”
+CPMS: 2,88

OK
at+cmgl=”STO UNSENT”
OK
(cioe’ non posso elencare (CMGL) da DM, ma solo da OM?)

at+cpms=”DM”,”OM”
+CPMS: 2,88,2,88

OK
at+cmgd=1
+CMS ERROR: invalid preferred memory storage
at+cmgd=2
OK
at+cmgd=5
OK
at+cpms?
+CPMS: “DM”,0,88,”OM”,2,88,”IM”,0,88

OK
(??? BOH?? ha cancellato da DM)

Possono presemtarsi errori diversi nel tentare di cancellare… ma chissa’ da cosa dipendono?!?
at+cpms=”OM”,”DM”
+CPMS: 2,88,0,88

OK
at+cmgd=1
+CMS ERROR: memory failure
at+cmgd=2
+CMS ERROR: invalid memory index
at+cmgd=3
OK
at+cpms?
+CPMS: “OM”,1,88,”DM”,0,88,”IM”,0,88

Perche’ non viene spedito??
at+cmgw=”+393331234567″
> OM,DM,IM
>
+CMGW: 2

OK
at+cmss=2
+CMS ERROR: ME failure (=errore Mobile Equipment, ovvero del cellulare)

NOTA: su una SIM Vodafone (invece che USIM 3), con cellulare sbloccato, i comandi +CMGL e +CMGR sembrano (quasi) funzionare bene!

Leggere il contenuto della clibpoard DI SISTEMA

Posted in Java, jython, Motorola a1000, Symbian, Symbian UIQ by jumpjack on 22 febbraio 2007

import java.awt.Toolkit

import java.awt.datatransfer

tk = java.awt.Toolkit

dt=tk.getDefaultToolkit()

cl=dt.getSystemClipboard()

a= java.lang.Object

cont = cl.getContents(a)

dfs=cont.getTransferDataFlavors()

val=cont.getTransferData(dfs[0])