mercoledì 30 marzo 2011

Android ed i LED (parte 2)

Aggiornamento 09-Settembre-2013:
Aggiornati i link.

Aggiornamento 27-Gennaio-2012:
Alcune applicazione impediscono il funzionamento di XLed quando arrivano gli SMS. In particolare GoSMS Pro impedisce la notifica quando arrivano gli SMS. Per ripristinare il corretto funzionamento bisogna disabilitare l'opzione "Disable other message notification". Vedi quà per ulteriori informazioni.


Aggiornamento 28-Novembre-2011: L'applicazione è ora disponibile nel market [3]. Purtroppo poiché è firmata in maniera diversa se avete una versione minore della 0.12 è necessario disinstallarla per poter installare quella del market.

A seguito del precedente post (Android ed i LED ) ho riscritto da zero un'applicazione per avere la notifica led di alcuni eventi quali la ricezione di un SMS e una telefonata senza risposta.

Tale applicazione è compatibile con lo LG Optimus ONE (purchè si abbiano i privilegi di root); tuttavia non escludo che possa essere compatibili con altri tipi di cellulari basati su Android. Il led che viene controllato è quello usato per illuminare i 4 tasti fisici.

Lo stato del led è controllato dal file
/sys/devices/platform/pmic-leds/leds/button-backlight/brightness
Basta scrivere nel file un valore 255 o 0 per, rispettivamente, attivare e disattivare i led.

Normalmente tale file non è scrivibile dalle applicazioni standard. Ma avendo disponibili i privilegi di root, si può renderlo scrivibile da tutti (i processi).

Installazione

Qui[1] potete trovare il file APK per installare il programma.

Dopo aver installato il programma, appena lanciato XLed prova a verificare se il file per controllare il Led è accessibile. Se tutto è andato OK vi troverete di fronte alla schermata seguente:



dove è possibile settare:

  • Enabled per abilitare o meno il programma
  • Blink on sms per abilitare o meno il lampeggio del led quando arriva un SMS
  • Blink on missing call per abilitare o meno il lampeggio del led in caso di una chiamata senza risposta
  • Set blink type per settare il numero di lampeggi: 1, 2, 3...
  • Set blink period per settare il periodo dei lampeggi
  • Set blink length per settare il la lunghezza dei lampeggi


Il default è 1 lampeggio (type = 1 flash blink) che dura 250ms (length = 250ms) ogni due secondi (period = 2 seconds).

Il pulsante Change led permission... serve per abilitare l'accesso al file che controlla il led. L'abilitazione all'accesso al file di controllo richiede i privilegi di root. Una volta abilitato l'accesso i privilegi di root non vengono più usati. L'abilitazione deve essere rieseguita esplicitamente dopo ogni riavvio e la prima volta quando si installa il programma.

Note di compatibilità

Come detto sopra XLed controlla l'accesso al file che controlla il led. Se il file non è scrivibile, viene emesso il seguente messaggio:



A questo punto premendo il pulsante Change led permission... si rende il file di controllo accessibile (ripeto che è l'unico momento in cui sono necessari i privilegi di root).

In caso che il file non esista, invece appare il seguente messaggio:



purtroppo in questo caso non c'è nulla che si possa fare. Per un qualche motivo il file di controllo non esiste: tipicamente perche si sta usando il programma su di un telefonino Android sprovvisto di quel tipo di led. In tal caso, con un minimo di supporto da parte dell'utente, sono disponibile a modificare il programma per farlo funzionare su hardware diverso dal mio; ovviamente nei limiti del possibile e del tempo a disposizione.

Avvertenza

L'applicativo non è firmato. Ed ovviamente devo applicare il disclaimer standard:

l'uso di questo programma è a vostro rischio; non si fornisce alcuna garanzia né esplicita né implicita. C'è il rischio di danneggiare permanentemente il vostro telefonino, di votare un tizio basso con i capelli finti e appassionato di minorenni o di sperare in una fazione politica incosistente.


Licenza

Il programma è rilasciato sotto la licenza GPL v2, e potete trovare il sorgente qui[2]

Link
[1] File APK del programma (XLed.apk) [AGGIORNATO]
[2] Repository git del programma
[3] https://market.android.com/search?q=xled&so=1&c=apps

My little patches...

Below a list of my patches spread on different projects: Linux kernel [all] 2018-02-01 iversion: Rename make inode_cmp_iversion{+raw}...