Dunque ragazzi, apro il thread per cercare di risolvere assieme il problema che tutti (o quasi) hanno riscontrato sulle proprie Autoradio Android con l'AF.
Il problema che c'è sulle autoradio in considerazione, è che l'AF non funziona.
L'AF (Alternative Frequency) è una funzione che possiedono quasi tutti i tipi di autoradio; serve sostanzialmente a risintonizzare su una "frequenza alternativa" la radio nel momento in cui ci si sposta in auto poiché, dopo un certo numero di km, la frequenza della stazione che si sta ascoltando varia.
Le Frequenze Alternative vengono trasmesse dalle stazioni su un canale dati RDS, di solito sono cinque.
Ciò che si fa, è confrontare la potenza del segnale della frequenza attuale con la potenza di ognuna delle frequenze alternative. Nel momento in cui una di quelle alternative è maggiore rispetto a quella attuale, si effettua lo switching.
Stavamo verificando che nelle autoradio in possesso dagli utenti del forum, la logica potrebbe essere diversa: nel momento in cui la potenza del segnale attuale diventa più bassa di una certa soglia, si cerca una tra le frequenze alternative per la risintonizzazione della radio.
Attualmente abbiamo provato a lavorare sull'apk della Radio che è disponibile al seguente link:
https://drive.google.com/folderview?...93M2hUNElvckk#
Abbiamo decompilato l'apk in un .jar che si trova qui:
https://drive.google.com/file/d/0Byu...dhVjVNQWM/view
E infine abbiamo messo i sorgenti .java decompilati alla meno peggio, ma che a grandi linee riescono a darci un'idea sulla struttura dell'app su questo repo:
https://bitbucket.org/bruno_scrivo/mtcradio.git
La prima cosa che stiamo cercando, è capire se è disponibile la lettura della potenza del segnale. Nella classe RadioService al rigo 816 penso che la variabile radioSignal venga usata per reperire la potenza. Da quanto ho capito però, quel codice è riferito alla funzione AutoSearch, non all'AF.
Quello che ho trovato sull'AF, è che viene solamente abilitato in AudioManager di Android, ma non viene fatto alcun controllo per verificare la potenza del segnale. Non so se sarà AudioManager a risintonizzare, ma non credo.
Per ora è tutto. Chi ne sa e a voglia si faccia avanti
Edit: grazie ai ragazzi di xda-developers e al loro tool (Dexpatcher) siamo riusciti a decompilare e ricompilare l'app aggiungendo le nostre modifiche.
Edit: siamo riusciti a far cambiare frequenza alla radio nel momento in cui la potenza del segnale si abbassa troppo. Il prossimo step è capire su che frequenza switchare. In particolare bisogna ottenere una lista di frequenze alternative.