Jumping Jack Flash weblog

Accedere al Bluetooth tramite PersonalJava su telefoni UIQ (A1000, p800, p900)

Posted in GPS, Java, jython, Programmazione by jumpjack on 27 ottobre 2007

Utilizzando PersonalJava, normalmente non è possibile accedere al bluetooth, perchè le librerie JSR82 sono
per J2ME, non per PesonalJava.

Ho però finalmente scoperto, dopo lunghe ricerche, che qualcuno, qualche anno fa, ha scritto una libreria bluetooth
apposta per Symbian UIQ 2.1: è nata per funzionare sul SonyEricsson p900, e pensavo che, come tante applicazioni
“evolute” che girano sui SonyEricsson (vedasi Python, mShell, mobinfo.dll,…) non funzionasse sull’a1000…

E invece FUNZIONA! Non solo: sembra che questa libreria sia anche migliore della JSR82!

Tramite le librerie JavaBT è possibile accedere al bluetooth, ad esempio per leggere le coordinate inviate da un’antenna
GPS.

E’ sufficiente scaricare il programmino java di prova per vedere comparire direttamente sullo schermo i dati
“crudi” trasmessi da un’antenna GPS esterna.

La libreria è fornita anche coi codici sorgenti, per chi volesse ricompilarla per altri sistemi.

La documentazione purtroppo lascia un po’ il tempo che trova…:
http://www.sics.se/humle/projects/mobitip/javabt/tutorial.php 

A parte il fatto di poter leggere i dati di un GPS, la disponibilità di una libreria Bluetooth dovrebbe rendere possibile
anche comunicare direttamente col PC, quindi usare il cellulare come telecomando per il PC, o il PC per inviare
messaggi SMS dal cellulare. Non è purtroppo possibile controllare le applicazione del cellulare tramite PC, perche’
PersonalJava non permette di “cliccare” virtualmente sullo schermo del telefono o di inviare “pressioni di tasti” alle
applicazioni.

HikeTracker è un altro progetto per p900 che ho trovato, che si basa sull’uso di bluetooth tramite librerie JavaBT, ma sembra che sull’a1000 non funzioni (il programma crasha).

Ad HikeTracker è ispirato un altro progetto, InhouseTracker, che dovrebbe permettere la localizzazione precisa
all’interno di ambienti chiusi.

Purtroppo entrambi i progetti hanno solo documentazione in tedesco…

Mobitip è un altra applicazione che si basa su JavaBT, ma pare non funzionare sull’a1000.

Comfuture è un’altra applicazione che si basa su JavaBT, volta a rendere l’intera casa telecontrollabile tramite
telefono bluetooth!

Rilevare versione della JVM

Posted in jython, Programmazione, Sviluppo by jumpjack on 26 ottobre 2007

import java.lang.System

s = java.lang.System

p=s.getProperties()

l=p.propertyNames()

print l.nextElement()   (ripetere per vedere tutti i nomi delle proprietà disponibili)

print p.getProperty(“[xxx]”) (xxx=uno dei nomi ottenuti con l’istruzione sopra)

print p.getProperty(“java.version”)

print java.lang.System.getProperties().getProperty(“java.version”)

Risorse per programmazione Visual basic

Posted in Programmazione by jumpjack on 19 settembre 2007

Forum Italiani:
http://forum.ioprogrammo.it/board.php?boardid=13&sid=c5d3190e4d0be2e5d2a354db7c6929c8

Forum Inglesi:
http://www.vbforums.com/index.php?
http://216.92.17.166/board2/  (EXCEL VBA)
http://www.tek-tips.com/
http://www.codeguru.com/
http://vbcity.com/forums
http://www.vbexplorer.com/VBExplorer/q&aform.asp
http://p2p.wrox.com/forum.asp?FORUM_ID=68
http://www.ozgrid.com/forum/forumdisplay.php?f=8 Excel-VBA
http://www.xtremevbtalk.com/index.php?  Specializzato in VB.NET (–>cos’e’ VB.NET?)
http://www.vba-programmer.com/  Sorgenti vari per Word, Ecxcel,…
http://www.outlookcode.com/ VBA per Outlook (ottimo sito e forum)
Enorme forum di programmazione in generale: http://help.lockergnome.com/office/Programming-VBA-forum-79.html
Altro grande forum di programmazione in generale: http://www.dreamincode.net/forums/
Forum-gateway a vari newsgroup di programmazione con migliaia di messaggi: http://www.velocityreviews.com/forums/forumdisplay.php?s=56c5d9252883c9b28bfca57700abb15f&f=16

 Forum programmazione JAVA della sun (Gateway a newsgroups, quindi affollatissimo!):

http://forum.java.sun.com/forum.jspa?forumID=80&start=0

Tutorial vari in italiano: http://excelvba.altervista.org/
Funzioni gia’ pronte per stringhe: http://www.romankoch.ch/capslock/strfun.bas
Manda evento mouse a finestra: http://www.lucidx.com/outsmart.txt
Manda evento mouse a finestra – 2: http://vbcity.com/forums/topic.asp?tid=135087
Codice già pronto: http://www.freevbcode.com/searchresults.asp
Trucchi e consigli VBA Access (italiano): http://www.sitocomune.com/
VBA Word: http://word.mvps.org/faqs/MacrosVBA/index.htm
Gruppo Google su programazione Access (ITA): http://groups.google.it/group/it.comp.appl.access/topics?lnk=gschg&hl=it
Gruppo Google Visual Basic (ITA): http://groups.google.it/group/it.comp.lang.visual-basic/topics?hl=it&lnk=gschg

Pezzi di codice sorgente già pronti:
http://www.jojo-zawawi.com/code-samples-pages/code-samples.htm
http://www.vba-programmer.com/ 

Commenti disabilitati su Risorse per programmazione Visual basic

Programmare i PocketPC (Windows Mobile)

Posted in PocketPC, Programmazione by jumpjack on 21 luglio 2007

CASL 4.3 (Compact Application Solution Language):
descrizione: http://www.freewarepocketpc.net/ppc-download-casl-4-3.html
DOWNLOAD
IDE
Scrive programmi per PocketPC / Windows Mobile, PalmOS e Windows
Supporto BT Supporto porta seriale
Supporto socket (HTTP e Telnet)
Supporto IR
Accesso ai file del PDA  

PocketZeus Lite v1.72
Permette di programmare direttamente sul palmare
Descrizione: http://www.freewarepocketpc.net/ppc-download-pocketzeus-lite-v1-72.html
DOWNLOAD

 Basic4ppc
Descrizione: http://www.freewarepocketpc.net/ppc-download-basic4ppc-desktop-v4-0.html
DOWNLOAD
Supporto librerie esterne
Supporto porta seriale
Supporto rotazione schermo
Avvio applicazioni dalla sezione “programmi”
Richiede RUNTIME: http://www.freewarepocketpc.net/ppc-download-basic4ppc-runner-2-05.html 
DOWNLOAD RUNTIME

PocketConsole
descrizione: http://www.freewarepocketpc.net/ppc-download-pocketconsole-v1-3.html
DOWNLOAD
Permette di lanciare applicazioni che non hanno interfaccia grafica.
NON è un emulatore DOS, ma una specie di “DOS nativo per PPC”.
Usare PocketConsole con EmbeddedVisualBasic

PocketCMD – Command prompt per PocketPC
Descrizione: http://www.symbolictools.de/public/pocketconsole/applications/PocketCMD/index.htm
CMD – Command prompt ufficiale della Microsoft per Windows CE
Descrizione: http://www.symbolictools.de/public/pocketconsole/applications/cmd/index.htm

Realizzare un “antifurto” per cellulari in Jython

Posted in jython, Motorola a1000, Programmazione, Symbian, Symbian UIQ by jumpjack on 9 febbraio 2007

In Jython è possibile leggere il numero della carta SIM (IMSI), leggere dati da file e inviare messaggi di nascosto dall’utente, senza che vengano nemmeno salvati in OUTBOX.

Combinando le tre cose, è possibile scrivere un programma che rileva se nel cellulare viene inserita una SIM diversa da quella originale, e in quel caso inviare un messaggio a un numero predefinito.

Ecco una bozza di possibile programma, che però effettua il controllo alla scelta della prima voce di menu: il vero “antifurto” dovrà invece ovviamente fare il controllo appena il programma parte, e tale programma dovrà essere messo in autoavvio.

import os
import java.lang
import com.symbian.javax.telephony.mobile
import java.lang.Integer
import java.lang.String
import javax.net.datagram
import com.symbian.javax.net.datagram
from java.awt import Frame,MenuBar,Menu,MenuItem,TextArea,FileDialog
from java.awt.event import ActionEvent
class test(java.awt.Frame):
-á -á def __init__(self):
-á -á -á -á self.size=(208,276)
-á -á -á -á self.myOutput=java.awt.TextArea(“Selezionare il menu ‘Verifica’.”)
-á -á -á -á 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):
-á -á -á -á p=com.symbian.javax.telephony.mobile.EpocGsmMobileProvider()
-á -á -á -á ts=p.getTerminals()
-á -á -á -á t=ts[0]
-á -á -á -á tads=t.getAddresses()
-á -á -á -á tad=tads[0]
-á -á -á -á m=com.symbian.javax.telephony.mobile.EpocGsmMobileTerminal(tad,p)
-á -á -á -á mads=m.getAddresses()
-á -á -á -á m=mads[0]
-á -á -á -á print “Numero SIM:”,m.getSubscriptionId()
-á -á -á -á IMSIFile=open(“c:\\system\\data\\e32user.bin”,’r’)
-á -á -á -á IMSI=IMSIFile.read()
-á -á -á -á print “Numero registrato: “,IMSI
-á -á -á -á if java.lang.Integer.toString(m.getSubscriptionId()) != IMSI:
-á -á -á -á -á -á print “BRUTTO LADRONE!!!”
-á -á -á -á -á -á jnd=javax.net.datagram
-á -á -á -á -á -á dns=jnd.DatagramNameService
-á -á -á -á -á -á addr=com.symbian.javax.net.datagram.SMSAddress(“NUMERO DESTINATARIO”)
-á -á -á -á -á -á ds=jnd.DatagramService
-á -á -á -á -á -á serv=ds.getService(addr)
-á -á -á -á -á -á mex=java.lang.String(“ti hanno fregato il cellulare!!!”).getBytes()
-á -á -á -á -á -á d=jnd.Datagram(mex,addr)
-á -á -á -á -á -á serv.send(d)
-á -á def doExit(self,event):
-á -á -á -á java.lang.System.exit(0)
if __name__==”__main__”:
-á -á myApp=test()

Realizzare un “antifurto” per cellulari in Jython

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

In Jython è possibile leggere il numero della carta SIM (IMSI), leggere dati da file e inviare messaggi di nascosto dall’utente, senza che vengano nemmeno salvati in OUTBOX.

Combinando le tre cose, è possibile scrivere un programma che rileva se nel cellulare viene inserita una SIM diversa da quella originale, e in quel caso inviare un messaggio a un numero predefinito.

Ecco una bozza di possibile programma, che però effettua il controllo alla scelta della prima voce di menu: il vero “antifurto” dovrà invece ovviamente fare il controllo appena il programma parte, e tale programma dovrà essere messo in autoavvio.

import os
import java.lang
import com.symbian.javax.telephony.mobile
import java.lang.Integer
import java.lang.String
import javax.net.datagram
import com.symbian.javax.net.datagram
from java.awt import Frame,MenuBar,Menu,MenuItem,TextArea,FileDialog
from java.awt.event import ActionEvent
class test(java.awt.Frame):
def __init__(self):
self.size=(208,276)
self.myOutput=java.awt.TextArea(“Selezionare il menu ‘Verifica’.”)
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):
p=com.symbian.javax.telephony.mobile.EpocGsmMobileProvider()
ts=p.getTerminals()
t=ts[0]
tads=t.getAddresses()
tad=tads[0]
m=com.symbian.javax.telephony.mobile.EpocGsmMobileTerminal(tad,p)
mads=m.getAddresses()
m=mads[0]
print “Numero SIM:”,m.getSubscriptionId()
IMSIFile=open(“c:\\system\\data\\e32user.bin”,’r’)
IMSI=IMSIFile.read()
print “Numero registrato: “,IMSI
if java.lang.Integer.toString(m.getSubscriptionId()) != IMSI:
print “BRUTTO LADRONE!!!”
jnd=javax.net.datagram
dns=jnd.DatagramNameService
addr=com.symbian.javax.net.datagram.SMSAddress(“NUMERO DESTINATARIO”)
ds=jnd.DatagramService
serv=ds.getService(addr)
mex=java.lang.String(“ti hanno fregato il cellulare!!!”).getBytes()
d=jnd.Datagram(mex,addr)
serv.send(d)
def doExit(self,event):
java.lang.System.exit(0)
if __name__==”__main__”:
myApp=test()