Autore Topic: Aggiornamento a Lollipop e la mia app non funziona più..  (Letto 3076 volte)

Offline smartgatto

  • Utente junior
  • **
  • Post: 96
  • Respect: +3
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S5
  • Sistema operativo:
    Windows 7
Aggiornamento a Lollipop e la mia app non funziona più..
« il: 18 Febbraio 2015, 17:12:43 CET »
0
Ciao a tutti,
è da qualche tempo che mi sto sbattendo con un problema apparentemente semplice...
dunque..tempo fa ho sviluppato con Android Studio una app per il mio Galaxy S5 (con kitkat) che consentisse di comandare un robot aspirapolvere con comandi inviati via infrarosso e tutto funzionava perfettamente.
E' arrivato l'aggiornamento a Lollipop per il mio telefono e l'ho fatto.
Da quando l'ho fatto la mia app non funziona più, ovvero, la mia app parte, si possono premere tranquillamente i tasti e sembra che il segnale infrarosso venga inviato, infatti guardando il diodo infrarosso del telefono con la fotocamera si vede il segnale emesso.

Allora mi sono detto che dovevo aggiornare il mio sdk e così ho fatto...ho scaricato le api 21 e ho fatto prima make project e poi run app...
il risultato è sempre lo stesso...il logcat non da alcun errore:
Codice: [Seleziona]
02-18 17:03:19.354  17176-17176/com.example.cristina.irda D/ResourcesManager﹕ creating new AssetManager and set to /data/app/com.example.cristina.irda-1/base.apk
02-18 17:03:19.364  17176-17176/com.example.cristina.irda I/art﹕ Created application space /data/dalvik-cache/arm/data@app@com.example.cristina.irda-1@base.apk@classes.dex.art at 0x76eb0000~0x76eb5548
02-18 17:03:19.364  17176-17176/com.example.cristina.irda I/art﹕ Loaded art file: /data/dalvik-cache/arm/data@app@com.example.cristina.irda-1@base.apk@classes.dex.art
02-18 17:03:19.424  17176-17176/com.example.cristina.irda V/BitmapFactory﹕ DecodeImagePath(decodeResourceStream3) : res/drawable-xxhdpi-v4/ic_ab_back_holo_dark_am.png
02-18 17:03:19.434  17176-17176/com.example.cristina.irda V/BitmapFactory﹕ DecodeImagePath(decodeResourceStream3) : res/drawable-xxhdpi-v4/sym_def_app_icon.png
02-18 17:03:19.454  17176-17176/com.example.cristina.irda V/BitmapFactory﹕ DecodeImagePath(decodeResourceStream3) : res/drawable-xxhdpi-v4/power.png
02-18 17:03:19.454  17176-17176/com.example.cristina.irda V/BitmapFactory﹕ DecodeImagePath(decodeResourceStream3) : res/drawable-xxhdpi-v4/home.png
02-18 17:03:19.494  17176-17176/com.example.cristina.irda V/BitmapFactory﹕ DecodeImagePath(decodeResourceStream3) : res/drawable-xxhdpi-v4/up.png
02-18 17:03:19.504  17176-17176/com.example.cristina.irda V/BitmapFactory﹕ DecodeImagePath(decodeResourceStream3) : res/drawable-xxhdpi-v4/left.png
02-18 17:03:19.514  17176-17176/com.example.cristina.irda V/BitmapFactory﹕ DecodeImagePath(decodeResourceStream3) : res/drawable-xxhdpi-v4/right.png
02-18 17:03:19.544  17176-17176/com.example.cristina.irda V/BitmapFactory﹕ DecodeImagePath(decodeResourceStream3) : res/drawable-xxhdpi-v4/bottone.png
02-18 17:03:19.554  17176-17176/com.example.cristina.irda V/BitmapFactory﹕ DecodeImagePath(decodeResourceStream3) : res/drawable-xxhdpi-v4/samsunglogo.png
02-18 17:03:19.564  17176-17176/com.example.cristina.irda V/BitmapFactory﹕ DecodeImagePath(decodeResourceStream3) : res/drawable-xxhdpi-v4/pause.png
02-18 17:03:19.574  17176-17176/com.example.cristina.irda V/BitmapFactory﹕ DecodeImagePath(decodeResourceStream3) : res/drawable-xxhdpi-v4/sl.png
02-18 17:03:19.574  17176-17176/com.example.cristina.irda D/Activity﹕ performCreate Call secproduct feature valuefalse
02-18 17:03:19.574  17176-17176/com.example.cristina.irda D/Activity﹕ performCreate Call debug elastic valuetrue
02-18 17:03:19.594  17176-17208/com.example.cristina.irda D/OpenGLRenderer﹕ Render dirty regions requested: true
02-18 17:03:19.614  17176-17176/com.example.cristina.irda D/Atlas﹕ Validating map...
02-18 17:03:19.644  17176-17208/com.example.cristina.irda I/Adreno-EGL﹕ <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build:  ()
    OpenGL ES Shader Compiler Version: E031.25.01.03
    Build Date: 10/28/14 Tue
    Local Branch: LA.BF.1.1_RB1_20141028_021_patches2
    Remote Branch:
    Local Patches:
    Reconstruct Branch:
02-18 17:03:19.644  17176-17208/com.example.cristina.irda I/OpenGLRenderer﹕ Initialized EGL, version 1.4
02-18 17:03:19.664  17176-17208/com.example.cristina.irda I/OpenGLRenderer﹕ HWUI protection enabled for context ,  &this =0xa1622088 ,&mEglDisplay = 1 , &mEglConfig = 8
02-18 17:03:19.664  17176-17208/com.example.cristina.irda D/OpenGLRenderer﹕ Enabling debug mode 0
02-18 17:03:19.774  17176-17176/com.example.cristina.irda I/Timeline﹕ Timeline: Activity_idle id: android.os.BinderProxy@f8d23d3 time:4800208
02-18 17:03:23.724  17176-17176/com.example.cristina.irda D/ViewRootImpl﹕ ViewPostImeInputStage ACTION_DOWN

cosa posso fare?

qui c'è parte del mio file:
Codice: [Seleziona]
        power.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                ConsumerIrManager mCIR;
                mCIR = (ConsumerIrManager) getSystemService(CONSUMER_IR_SERVICE);
                int[] pattern = {173, 170, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23,
                        19, 23, 62, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 62, 23, 19, 23, 19, 23,
                        19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 62, 23, 62, 23, 62, 23, 62, 23, 62, 23, 62, 23,
                        62, 23, 62, 23, 2500};
                mCIR.transmit(38000, pattern);
                // Perform action on click
            }
        });
« Ultima modifica: 01 Marzo 2015, 09:30:07 CET da smartgatto »

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Aggiornamento a Lollipop e la mia app non funziona più..
« Risposta #1 il: 18 Febbraio 2015, 17:27:33 CET »
0
eh è dura poter trovare il problema. Non so se e cosa sia cambiato nelle classi interessate, soprattutto visto che si parla di dispositivo samsung e quindi con codice non proprio AOSP.... l'unica cosa che puoi fare è se hai un ricevitore infrarossi tipo arduino a vedere se vengono ricevuti i comandi corretti...

altrimenti controlla il codice sorgente di android.hardware.ConsumerIrManager
qui dovresti trovare il codice delle diverse versioni senza andare via git
GC: ConsumerIr - com.example.android.apis.hardware.ConsumerIr (.java) - GrepCode Class Source
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline smartgatto

  • Utente junior
  • **
  • Post: 96
  • Respect: +3
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S5
  • Sistema operativo:
    Windows 7
Re:Aggiornamento a Lollipop e la mia app non funziona più..
« Risposta #2 il: 18 Febbraio 2015, 17:40:36 CET »
0
eh è dura poter trovare il problema. Non so se e cosa sia cambiato nelle classi interessate, soprattutto visto che si parla di dispositivo samsung e quindi con codice non proprio AOSP.... l'unica cosa che puoi fare è se hai un ricevitore infrarossi tipo arduino a vedere se vengono ricevuti i comandi corretti...

dunque..si ho arduino e tutto il necessario..dovrei solo rispolverare dalla memoria come si fa..
la cosa mi che mi da più da pensare che usando una app di qualche tempo fa (e non aggiornata recentemente) che ho trovato sul play store (Power IR Universal Remote) che permette di inviare direttamente il segnale infrarosso semplicemente digitando i dati della stringa IR, ebbene con questa funziona perfettamente, quindi a) il robot funziona b) la parte ir del mio telefono funziona.
Quindi...questa app funziona nonostante lollipop e non è stata aggiornata mentre la mia invece non funziona....uffff

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Aggiornamento a Lollipop e la mia app non funziona più..
« Risposta #3 il: 18 Febbraio 2015, 18:02:10 CET »
0
Non so aiutarti direttamente, ma ti suggerisco qualche strada da percorrere:

1) sicura che 38000 sia giusto? se è un baud rate un numero tipico è 38400 (non so perchè non dovrebbe funzionare su Lollipop, ma almeno è una facile prova).

2) potresti cercare su github app opensource che usano ConsumerIrManager e vedere come hanno cambiato il codice post-lollipop e compararlo con il tuo. Esempio guarda questa: https://github.com/hassanj-576/IR/tree/50415b0d0b15f6ebc0363c7671ae7b7befefd384/IR/src/com/example/ir   Ma ce ne sono molte altre.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline smartgatto

  • Utente junior
  • **
  • Post: 96
  • Respect: +3
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S5
  • Sistema operativo:
    Windows 7
Re:Aggiornamento a Lollipop e la mia app non funziona più..
« Risposta #4 il: 18 Febbraio 2015, 18:12:11 CET »
0
Non so aiutarti direttamente, ma ti suggerisco qualche strada da percorrere:

1) sicura che 38000 sia giusto? se è un baud rate un numero tipico è 38400 (non so perchè non dovrebbe funzionare su Lollipop, ma almeno è una facile prova).

si è 38000 perchè nelle specifiche trovate su internet dicono 38000 e non 38400

Citazione
2) potresti cercare su github app opensource che usano ConsumerIrManager e vedere come hanno cambiato il codice post-lollipop e compararlo con il tuo. Esempio guarda questa: https://github.com/hassanj-576/IR/tree/50415b0d0b15f6ebc0363c7671ae7b7befefd384/IR/src/com/example/ir   Ma ce ne sono molte altre.
ora cerco...però prima mi attivo con arduino e vedo un pò che mi dice...
anche se però continua a non tornarmi la storia dell'altra app che funziona...

Post unito: 19 Febbraio 2015, 16:14:45 CET
Dunque...ho rimontato il vecchio arduino e ho scoperto che in realtà il segnale infrarosso non viene fisicamente inviato!
Ovvero..con una fotocamera si vede il led infrarosso che si accende ma andando a leggere il codice ir tramite arduino non viene identificato nulla!
« Ultima modifica: 19 Febbraio 2015, 16:14:45 CET da smartgatto, Reason: Merged DoublePost »

Offline arlabs

  • Utente normale
  • ***
  • Post: 433
  • Respect: +49
    • Mostra profilo
  • Dispositivo Android:
    GalaxyS6, Nexus5
  • Play Store ID:
    AR Labs
  • Sistema operativo:
    Windows 10
Re:Aggiornamento a Lollipop e la mia app non funziona più..
« Risposta #5 il: 19 Febbraio 2015, 16:54:30 CET »
0
Beh, a questo punto farebbe comodo un fotodiodo e un'oscilloscopio... :)

Cmq, non ricevere nulla nonostante il segnale venga inviato potrebbe essere proprio dovuta alla frequenza carrier.
Hai provato a vedere getCarrierFrequencies cosa ritorna? E cosa ritornava su Kitkat (certo questo la vedo più difficile)


Offline smartgatto

  • Utente junior
  • **
  • Post: 96
  • Respect: +3
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S5
  • Sistema operativo:
    Windows 7
Re:Aggiornamento a Lollipop e la mia app non funziona più..
« Risposta #6 il: 19 Febbraio 2015, 17:55:49 CET »
+2
Aggiornamento!!!   :-) :-) :-) :-) :-)

Dunque...dopo vari sbattoni, come far partire il mio vecchio arduino (non ricordavo come si facesse.....) e cercare di leggere riga per riga il mio codice per capire cosa non andasse...sono andato su internet e ho cercato e ricercato fino a quando non so come, sono arrivato qui:
android - ConsumerIrManager API 19 - Stack Overflow

non so come mai mi sono concentrato sulle righe di una risposta in cui dice di convertire il "Count Pattern to Duration Pattern" moltiplicando per gli impulsi...ho effettuato manualmente la conversione di una stringa di prova, quindi da
Codice: [Seleziona]
public void power() {
        int[] pattern = {173, 170, 23, 62, 23, 19, 23, 19, 23, 19, 23,
                19, 23, 19, 23, 19, 23, 62, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23,
                19, 23, 19, 23, 62, 23, 19, 23, 19, 23,
                19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 62, 23,
                62, 23, 62, 23, 62, 23, 62, 23, 62, 23,
                62, 23, 62, 23, 2500};
        ConsumerIrManager mCIR;
        mCIR = (ConsumerIrManager) getSystemService(CONSUMER_IR_SERVICE);
        mCIR.transmit(38400, pattern);
    }

a:
Codice: [Seleziona]
public void power() {
        int[] pattern = {4550, 4471, 605, 1630, 605, 500, 605, 500, 605, 500, 605, 500, 605, 500, 605, 500, 605, 1630, 605, 1630, 605, 500, 605, 500, 605, 500, 605, 500, 605, 500, 605, 500, 605, 1630, 605, 500, 605, 500, 605, 500, 605, 500, 605, 500, 605, 500, 605, 500, 605, 500, 605, 1630, 605, 1630, 605, 1630, 605, 1630, 605, 1630, 605, 1630, 605, 1630, 605, 1630, 605, 65750};
        ConsumerIrManager mCIR;
        mCIR = (ConsumerIrManager) getSystemService(CONSUMER_IR_SERVICE);
        mCIR.transmit(38400, pattern);
    }

e ora così funziona!! non mi resta che convertire manualmente ogni valore del pattern....


Già che ci sono chiedo...come mai su "CONSUMER_IR_SERVICE" mi rimane sempre sottolineato in rosso e mi dice "Must be one of: Context.POWER_SERVICE, etc etc etc"? non capisco se è un errore o no...

cmq grazie a tutti per il supporto!

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Aggiornamento a Lollipop e la mia app non funziona più..
« Risposta #7 il: 19 Febbraio 2015, 19:17:15 CET »
0
Grazie per aver scritto la soluzione (ti ho dato un THANKS).

Per l'ultimo problema, secondo me potrebbe bastare rimpiazzare CONSUMER_IR_SERVICE con Context.CONSUMER_IR_SERVICE perchè probabilmente è il nuovo modo di scriverlo.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline arlabs

  • Utente normale
  • ***
  • Post: 433
  • Respect: +49
    • Mostra profilo
  • Dispositivo Android:
    GalaxyS6, Nexus5
  • Play Store ID:
    AR Labs
  • Sistema operativo:
    Windows 10
Re:Aggiornamento a Lollipop e la mia app non funziona più..
« Risposta #8 il: 19 Febbraio 2015, 21:34:06 CET »
0
Bradipao, la sottolineatura resta.
Prima le costanti erano intere, CONSUMER_IR_SERVICE invece è una stringa. Penso che i controlli lint di android studio non siano aggiornati.
Poi non so, io non ancora aggiornato al l'ultimissima versione...

Ciao