Category Archives: Android

Android lezione 11 – Ricevere gli SMS

Nella lezione precedente abbiamo visto come spedire un sms dal nostro android, ora come promesso vi spiegherò come riceverli. Per implementare la ricezione degli sms useremo un nuovo oggetto specifico di android. Il BroadcastReceiver. Si tratta di una classe astratta, che viene utilizzata dalle applicazioni android qualora queste vogliano ricevere dati dalle intent che vengono spedite dalla sendBroadcast().

 

Dal momento che le intent che si possono ricevere (o spedire) sono molte, possiamo istruire la nostra applicazione per rispondere solo ad alcune di esse. E questo lo si puó agevolmente fare  tramite il Manifest. In questo caso le intent che dovranno essere ricevute dal nostro BroadcastReceiver vanno inserite all’interno del tag chiamato appunto <receiver …> che viene utilizzato appunto per configurare questo tipo di oggetti. Quindi quello che dovremo aggiungere sarà:

Continue reading Android lezione 11 – Ricevere gli SMS

Far vedere un tablet android ad adb quando non lo trova

Per il mio compleanno mi è stato regalato un tablet da 8´ della maxell. Si tratta di quei tablet economici che stanno iniziando a girare sul mercato con un prezzo intorno ai 100 euro e caratterestiche alcune volte anche discrete  (per la cronaca quello che mi hanno regalato  a parte qualche pecca, devo dire che è un device soddisfacente).

Provando ad accederci con adb shell, scopro che il mio device non viene visto dal tool. infatti digitando il comando:

adb devices

che dovrebbe mostrarci la lista dei device connessi , invece non ne mostrava nessuno. Questo perchè l’sdk android viene con un supporto per un numero di device limitato. Ma non preoccupiamoci, il problema è facilmente risolvibile in pochi passi. Vediamo quali:

  • Attaccare il device al computer
  • Tramite il comando usb-devices o dmesg individuate il vendorId del dispositivo (cmq per il maxell maxtab c8 é 2207)
  • Dopo di che aprite il file che trovate in ~/.android/adb_usb.ini (dove ~ indica la vostra home directory).
  • All’ultima riga inserite il vendor id appena trovato preceduto dal prefisso 0x, per esempio nel mio caso dovevo inserire il valore 0x2207
  • Date ora il comando:
    • adb kill-server

Riprovate ora con adb devices e il vostro tablet dovrebbe comparire. (Fino a questo punto la guida dovrebbe valere anche per windows) Se ancora avete problemi ad accedervi e il comando vi restituisce una riga di un device che ancora non riesce ad identificare, questa volta si tratta di un problema di permessi, risolvibile aggiungendo una nuova regola udev. Quindi se non esiste create il file /etc/udev/rules.d/51-android.rules (o se avete un file relativo ad android con un nome leggermente diverso potete usare quello esistente) e aggiungete la seguente riga:

SUBSYSTEM=="usb", ATTR{idVendor}=="2207", MODE="0666", GROUP="plugdev"

Ovviamente sostituite il il valore di ATTR{idVendor} con quello del vostro device. Effettuate nuovamenet il login, e il vostro tablet/smartphone viene visto senza problemi sia da eclipse che da adb.

E ora potete accedere alla shell del vostro tablet con:

adb shell

Prima di chiudere vi ricordo che adb é un programma che viene fornito insieme al sdk di android, quindi a meno che non lo abbiate inserito voi manualmente nei path del vostro sistema, per lanciarlo dovete trovarvi nella all’interno della cartella platform-tools che viene fornita all’interndo dell’sdk android.
UPDATE 13/08/2013

Se dopo un aggiornamento del sdk android, il vostro tablet non viene nuovamente visto, dovete prima di tutto lanciare il seguente comando:

./android update adb

(questo comando si trova all’iterno della cartella tools).

Dopo di che aggiungete nuovamente il vendor id del vostro device, nel file adb_usb.int e tutto dovrebbe tornare a funzionare.

In-App billing per comuni mortali – puntata 4 CHECK_BILLING_SUPPORTED

In questa lezione effettueremo la nostra prima richiesta al servizio in-app di android, per la precisone utilizzeremo la richiesta CHECK_BILLING_SUPPORTED  che ci permetterá di sapere se il device è abilitato o meno a questa tipologia di pagamento (non tutte le versioni di android supportano l’in-app billing).

Le richieste disponibili – Numero 1: CHECK_BILLING_SUPPORTED

La prima richiesta che andiamo a vedere, é anche la piú semplice, ed é quella per verificare che l’in-app billing sia supportato dal telefonino. Questa richiesta non genera delle risposte asincrone, ma bensí solo un risposta sincrona. con il RESPONSE_CODE il cui valore ci dirá se possiamo fare o meno le richieste in-app.  Nell’immagine seguente vedete come é la sequenza di chiamate risposte per questo comando (l’immagine é stata presa dalla documentazione android di google)
.

Continue reading In-App billing per comuni mortali – puntata 4 CHECK_BILLING_SUPPORTED

Android lezione 10 – Spedire SMS e introduzione al file manifest

Bene visto che abbiamo imparato durante tutte queste lezioni a lavorare co alcuni degli elementi dell’interfaccia grafica di android, questa volta inizieremo anche ad interagire con alcuni servizi del telefono. Quello che andremo a vedere é forse una delle caratteristiche piú usate nei telefonini di tutto il mondo: gli SMS!! Vi spiegheró come realizzare una semplice applicazione per inviare e ricevere gli SMS. Nel fare questo vedremo anche dei concetti nuovi, come per esempio gli inten-filter e le relative action, andremo a mettere mano direttamente al File AndroidManifest. Vedremo cosa sono le permission, etc. Quindi non ci resta che iniziare 🙂

Parte 1 – configurazione del servizio Una delle caratteristiche di android, é che ogni volta che installiamo una applicazione, sappiamo sempre quello che avrá il permesso o meno di fare. Avete presente la schermata di installazione ? Bene se non ci avete mai fatto caso, in quella schermata vengono riepilogate tutti servizi/componenti del telefonino utilizzate dall’app. Un esempio é la screenshot seguente:

Continue reading Android lezione 10 – Spedire SMS e introduzione al file manifest

In-App billing per comuni mortali puntata 3 – Le richieste

 Come fare le richieste – Ecco appunto Come farle? 🙂

A questo punto abbiamo tutti gli strumenti base per cominciare a fare le nostre richieste al MarketBillingService.

Come avevamo detto le richieste si faranno mediante il metodo sendBillingRequest, questo metodo come argomento prende un Bundle per la richiesta, e ne torna uno sincrono con la risposta.

Il Bundle della richiesta é composto minimo da tre campi:

  • BILLING_REQUEST (stringa)- che contiene il tipo di richiesta che andremo a fare (CHECK_BILLING_SUPPORTED, REQUEST_PURCHASE, etc)
  • API_VERSION (intero)- La versione delle API del servizio che andremo ad usare, al momento che sto scrivendo questo articolo vi sono solo due versioni di API (versione 1 e 2) , la 2 si differenzia dalla 1 perche contiene il nuovo servizio di Subscription tramite l’in-app billing, che nion andremo a vedere in questa guida, comunque.
  • PACKAGE_NAME (stringa) – il nome del package che sta effettuando la richiesta

Quindi supponiamo che sia il pcakage name e la versione delle API che vogliamo usare siano sempre le stesse,  l’unico campo che varierá per le richieste sará BILLING_REQUEST.

Continue reading In-App billing per comuni mortali puntata 3 – Le richieste

In-app billing per comuni mortali – puntata 2

In questa seconda puntata spieghiamo brevemente come funziona l’architettura del billing in-app e cominciamo a inserire i primi metodi e classi nel nostro progetto.

L’Architettura

La gestione delle richieste dall’in-app billing utiliza principalmente una sequenza di messaggi asincroni per soddisfare le richieste fra l’applicazione e i server di google. Tutte le richieste che fa la nostra applicazione relative agli acquisti, non interagiscono direttamente con i server di google, bensí inviano le loro richieste tramite IPC al servizio relativo nell’applicazione del Google Play store.  Ovviamente se noi vogliamo possiamo interagire con dei nostri server per gestire gli acquisti, una volta effettuati, degli utenti. Ma mai la nostra applicazione, ne il nostro server entreranno nel merito della transazione (tranne per i suoi contenuti quali risultato, oggetti ordinati, etc).

Come detto precedentemente i componenti fondamentali su cui si basa una implementazione dell’in-app billing sono il Servizio, il BroadCastReceiver e una componente relativa alla sicurezza.

Ovviamente se necessario la nostra applicazione deve gestire anche il salvataggio delle impostazioni dopo l’acquisto.

Lo schema in figura rappresenta brevemente come avviene la comunicazione fra il servizio in-app di google play e la nostra applicazione.

Continue reading In-app billing per comuni mortali – puntata 2

In-app billing per comuni mortali – puntata 1

Iniziamo questa nuova serie di articoli a puntate dedicata all’utilizzo del nuovo servizio di in-app billing di google per i telefonini android che ci consente di ricevere pagamenti direttamente all’interno della nostra applicazione.  Inizialmente questa guida avrei voluto farla in un unico post, ma arrivato alla decima pagina e ancora non avevo finito, mi sono reso conto che forse sarebbe stato meglio suddividerla in piú articoli. E quindi iniziamo questa prima puntata introducendo le caratteristiche del servizio, vedendo quali pacchetti andranno installati e quali sono i primi passi da fare per abilitarlo all’interno della nostra applicazione.

Il billing in-app per le applicazioni android come detto precedentemente permette all’utente di effettuare degli acquisti direttamente dalla nostra applicazione, utilizzando i servizi del Play store senza doverci piú preoccupare della gestione delle transazioni, il tutto avverrá in maniera molto simile a quanto accade gia per l’acquisto di un app, utilizzando anche le stesse informazioni finanziarie, fornendo cosí anche agli utenti una discreta sicurezza sul sistema che si sta adottando per gestire le transazioni. Come tutte le cose ci sono dei pro e dei contro, vediamoli brevemente:

Continue reading In-app billing per comuni mortali – puntata 1

Un po di autopubblicitá: CronCalc

Ovviamente scrivendo lezioni android non potevo che fare anche io le mie app android.

Per ora ne ho sviluppate 3.

In questo breve articolo voglio pubblicizzare la mia prima app a pagamento (solo il costo di un caffé 0,79 Euro). Croncalc

Si tratta di un applicazione per la generazione di stringhe da utilizzare in cron. Per chi non lo sa cron é un tool per il mondo unix/linux che ci permette di pianificare l’esecuzione di script/programmi nel nostro sistema. Queste stringhe hanno una sintassi particolare, questa app ci aiuta a generarle senza fatica.

Non solo possiamo anche condividerle via mail/sms/whatsapp etc. (dipende da cosa supporta il vostro telefono).

Come vedete la schermata principale cerca di essere il piu semplice possibile. In basso a destra abbiamo il risultato della nostra selezione (se non viene visualizzato completamente vi basta tapparci sopra e vi verrá mostrato in una dialogbox, ove avrete anche la possbilitá di condividerlo). Per iniziare ad utilizzarlo vi basta semplicemente premere i tasti +/- sui vari componenti della stringa.

Continue reading Un po di autopubblicitá: CronCalc

Android Lezione 8 – L’Options Menu

Dopo aver visto nella lezione 5 il context menu, che normalmente si utilizza quando vogliamo aprire un menu specifico per un oggetto (casella di testo, bottone, immagine, etc), ora introduciamo un nuovo tipo di menu che invece é piú legato all’applicazione, e si tratta per la precisione di quel menu che si ottiene premendo il pulsante del menu sul telefono. Un esempio e’ mostrato in figura:

Continue reading Android Lezione 8 – L’Options Menu