CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: Varioflex con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 14 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 35 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 8 su 8
Discussione:

Limitazioni per applicazioni di prossimità

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Jun 2010
    Messaggi
    35

    Ringraziamenti
    3
    Ringraziato 1 volta in 1 Post
    Question

    Limitazioni per applicazioni di prossimità

    Salve a tutti, volevo porvi un quesito a proposito delle limitazioni presenti in android per la creazioni di applicazioni di prossimità ( intendo quelle applicazioni dove utenti interagiscono tra di loro se sono nel raggio di azione del bluetooth o wifi).
    Ho trovato queste cose molto scomode e vorrei sapere se c'è un rimedio.

    1 - La connessione tramite Bluetooth di due dispositivi è possibile solamente se i due dispositivi sono associati e quindi se è stata richiesta una connessione con autenticazione. Provenendo da JavaME questa cosa era possibile deciderla a livello applicativo e creare applicazioni che si possono connettere anche senza una reale autenticazione dell'utente.
    2 - Il tempo di pubblicazione dei servizi Bluetooth è limitato a 300/120 secondi. Allo scadere viene comunicato all'utente un messaggio se vuole tenere attiva la pubblicazione per altri 300/120 secondi. D'accordo con il punto 1, una volta associati, un dispositivo potrebbe sapere lo stesso i servizi bluetooth dell'altro, ma non vi sembra che sia comunque una limitazione?
    3 - Ho letto in qualche forum/blog che il wifi viene chiuso se il cellulare va in standby o qualcosa di simile, anche se la connessione wifi è attiva e ci sono dei trasferimenti in atto. Sapete dirmi qualcosa in merito?
    4 - Il tethering WiFi è interessante, secondo voi pubblicheranno qualche API a breve?

    Io alcune soluzioni penso di averle trovate o comunque le immagino, la più gettonata che mi viene in mente è quella di spulciare il sorgente android e andare a modificare/bypassare alcune funzioni per il bluetooth (timeout e pairing). Pensate sia una cosa possibile?

    Grazie

    Marco

  2.  
  3. #2
    Administrator L'avatar di Andrea


    Registrato dal
    Nov 2008
    Messaggi
    3,368
    Smartphone
    Nexus S, myTouch Slide 4g

    Ringraziamenti
    143
    Ringraziato 880 volte in 323 Posts
    Predefinito

    Ciao, Effettivamente ci sono delle limitazioni ( Sopratutto per quanto riguarda il bluetooth ) .

    Ma perchè far interagire le persone via bluetooth ? Perchè invece non ricavare la posizione tramite la cella gsm e farle comunicare via internet?

    Ricordiamo che questi dispositivi sono praticamente nati per stare sempre online perciò non credo ci sia problema nell'usare internet per questi scopi

    Per quanto riguarda il tethering wifi non credo verrà pubblicato nulla. Tuttavia per il bluetooth so che Stefano Sanna aveva fatto una libreria che estendeva le api bluetooth di android. Prova a cercare su google.

    Twitter @veke87

  4. #3
    Baby Droid


    Registrato dal
    Jun 2010
    Messaggi
    35

    Ringraziamenti
    3
    Ringraziato 1 volta in 1 Post
    Predefinito

    Farle interagire via Bluetooth proprio in mancanza di copertura GPRS/UMTS/WiFi.
    In effetti sto lavorando ad un applicazione da utilizzarsi in aree di crisi (atti terroristici, incidenti,ecc). In quei casi le celle GPRS nell'area si saturano (e succede spesso visto che tutti provano a chamare o a mandare messaggi). Per non parlare che le aree di crisi possono essere anche in ambienti chiusi sotterranei quali metropolitane e stazioni ferroviarie dove non c'è praticamente campo.
    L'uso delle tecnologie di prossimità mi permetterebbe di effettuare una comunicazione "virale" tra le persone presenti nell'area, e trasferire messaggi di emergenza e di informazione tra le varie persone presenti anche la dove non sia presente alcun segnale GPRS/UMTS ecc.

    Ti ringrazio per le info sul bluetooth, darò subito un occhiata.

  5. #4
    Administrator L'avatar di Andrea


    Registrato dal
    Nov 2008
    Messaggi
    3,368
    Smartphone
    Nexus S, myTouch Slide 4g

    Ringraziamenti
    143
    Ringraziato 880 volte in 323 Posts
    Predefinito

    Ora ho capito il perchè di utilizzo d bluetooth. Fra qualche anno potrai utilizzare anche il modulo fm per mandare sos. molti cellulari stanno già uscendo con moduli fm integrati in grado di ricevere e mandare dati.

    Non credo passerà moltissimo tempo prima che google pensi di fare delle api standardizzate per l'utilizzo di questa feature


    PS: Complimenti per l'idea. Molto interessante.

    PS2: Se hai bisogno di qualcos'altro domanda pure

    Twitter @veke87

  6. #5
    Baby Droid


    Registrato dal
    Jun 2010
    Messaggi
    35

    Ringraziamenti
    3
    Ringraziato 1 volta in 1 Post
    Predefinito

    Caspita, interessante questo modulo FM. Farò qualche ricerca approfondita.

    Non credo passerà moltissimo tempo prima che google pensi di fare delle api standardizzate per l'utilizzo di questa feature
    Speriamo

    Ho dato un occhiata alle librerie di Stefano Sanna e soprattutto alle sue slide sul bluetooth. Devo dire che è molto interessante e forse mi sarà utile acquisire tramite reflection i servizi Bluetooth, magari posso utilizzare qualche metodo non esposto nelle API per arrivare ai miei scopi.
    Purtroppo non vorrei passare ad altri linguaggi e SO (vedi symbian/iphone) perché Java è ormai una passione e da come sto interpretando android mi sembra un framework ben costruito!
    A presto e grazie ancora

  7. #6
    Baby Droid


    Registrato dal
    Jun 2010
    Messaggi
    35

    Ringraziamenti
    3
    Ringraziato 1 volta in 1 Post
    Predefinito

    Allora, in questi giorni ho letto parecchie cose e provato, per quanto possibile alcune combinazioni per superare queste limitazioni.
    Premetto che ancora non ho un dispositivo e sto solamente lavorando di emulatore e immaginazione.

    Ho sfogliato il codice sorgente di android e ho trovato il fatidico punto nel quale si presenta la limitazione della durata della discovery bluetooth:

    file: platform/frameworks/base/core/java/android/server/BluetoothService.java
    riga: 859

    metodo:
    codice:
    public synchronized boolean setScanMode(int mode, int duration)
    qui questo bel case è cio che fa a caso nostro
    codice:
     case BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE:
                mHandler.removeMessages(MESSAGE_DISCOVERABLE_TIMEOUT);
                pairable = true;
                discoverable = true;
                Message msg = mHandler.obtainMessage(MESSAGE_DISCOVERABLE_TIMEOUT);
                mHandler.sendMessageDelayed(msg, duration * 1000);
                if (DBG) Log.d(TAG, "BT Discoverable for " + duration + " seconds");
                break;
    c'è la necessità di eliminare quell'ultimo sendMessageDelayed che nell Handler non fa altro che richiamare nuovamente questo metodo (setScanMode) in questo modo: setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE , -1); disabilitando così la visibilità del dispositivo.

    A questo punto però, essendo particolarmente nuovo di android, vorrei sapere cosa dovrei fare per compilare di nuovo android per il mio futuro cellulare HTC Desire, o meglio: è possibile compilare questi sorgenti per l'HTC Desire?
    Ho letto molte guide di come flashare una rom e cose simili, ma tutte partono da qualcosa di già bello e pronto, io dovrei compilare kernel e OS, quale guida potrei seguire?

    Infine porto un'altra scoperta, e ringrazion Stefano Sanna per la dritta.
    Con le reflection è possibile accedere alla suddetta classe BluetoothService e richiamare a piacimento metodi probabilmente utili come:
    codice:
    setScanMode
    setPin
    setPasskey
    Il mio problema però in questo caso, è che si, posso richiamarli, ma solamente sull'istanza che creo al momento con invoke e non su quella attualmente utilizzata dal sistema. C'è un modo per utilizzare direttamente la classe già istanziata dal sistema?

    Grazie ancora,
    questo forum è davvero molto interessante

  8. #7
    Senior Droid L'avatar di maurilios


    Registrato dal
    Dec 2009
    Messaggi
    328

    Ringraziamenti
    7
    Ringraziato 20 volte in 19 Posts
    Predefinito

    Quote Originariamente inviato da markov00 Visualizza il messaggio
    Allora, in questi giorni ho letto parecchie cose e provato, per quanto possibile alcune combinazioni per superare queste limitazioni.
    Scusa, ma se vai a toccare i sorgenti di android, ammesso di riuscire a superare le limitazioni sul bt, poi avrai un'applicazione non standard. Come farai ad utilizzarla per le finalità di cui parlavi? Ci sarà sempre una buona fetta di utenti con i quali non potrai comunicare. Tanto vale sviluppare l'applicazione in j2me su telefoni nokia o samsung che non hanno di queste limitazioni.

  9. #8
    Baby Droid


    Registrato dal
    Jun 2010
    Messaggi
    35

    Ringraziamenti
    3
    Ringraziato 1 volta in 1 Post
    Predefinito

    Scusa, ma se vai a toccare i sorgenti di android, ammesso di riuscire a superare le limitazioni sul bt, poi avrai un'applicazione non standard. Come farai ad utilizzarla per le finalità di cui parlavi? Ci sarà sempre una buona fetta di utenti con i quali non potrai comunicare. Tanto vale sviluppare l'applicazione in j2me su telefoni nokia o samsung che non hanno di queste limitazioni.
    Le modifiche al sorgente mi servirebbero per lo sviluppo del prototipo,ho circa sei mesi di sviluppo e spero che presto queste limitazioni possano essere superate facilmente senza interventi a tale livello.
    Visto che attualmente le API per il bt su android non sono così espanse spero nel buon senso degli sviluppatori di ampliarle prima possibile.
    Sto verificando in questi giorni che probabilmente è possibile accedere ad alcune classi del bluetooth con la reflection, e mi questo potrebbe permettermi di ottenere un maggiore controllo.

    Il problema su J2ME invece è che non esiste la possibilità di conoscere, creare e ricercare reti WiFi...problema non indifferente perchè l'introduzione del messaggio "epidemico" avviene in primo luogo via WLAN.
    Esistono delle estensioni di nokia e sony per le reti wifi su j2me ma purtroppo sono limitate e statiche (forniscono dati relativi ai punti di accesso precedentemente individuati o preferiti...)

    Se siete interessati possiamo continuare a scambiarci informazioni su queste cose, io ci lavorerò parecchio quindi qualcosa in più ogni giorno spero di scoprire.
    Ultima modifica di markov00; 25-06-10 alle 11:08

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy