Autore Topic: Capire se il device è emulato  (Letto 177 volte)

Offline lithian

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Wildfire
  • Market Developer Name:
    Luca Minuti
  • Sistema operativo:
    Window XP
Capire se il device è emulato
« il: 03 Agosto 2010, 16:12:23 CEST »
0
Ciao a tutti, volevo sapere se c'è un modo per capire se l'applicazione sta girando su un dispositivo fisico o all'interno dell'emulatore e magari anche se è stata compilata in modalità debug o release.

Grazie!

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1578
  • Respect: +179
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus w/ CM9
  • Market Developer Name:
    Roberto Leinardi
  • Sistema operativo:
    Ubuntu 11.10
Re:Capire se il device è emulato
« Risposta #1 il: 03 Agosto 2010, 17:12:59 CEST »
0
Non ho capito bene la domanda, vuoi sapere, avendo sia il telefono collegato in modalità debug che l'emulatore in esecuzone, se la tua applicazione verrà avviata sul telefono o sull'emulatore?
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline lithian

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Wildfire
  • Market Developer Name:
    Luca Minuti
  • Sistema operativo:
    Window XP
Re:Capire se il device è emulato
« Risposta #2 il: 03 Agosto 2010, 17:20:47 CEST »
0
No. In effetti ho fatto due domande in una e non si capisce una mazza  :-P

Prima domanda
Ho bisogno che l'applicazione si comporti in modo differente a seconda che stia girando su un dispositivo fisico o sull'emulatore. Una cosa tipo:

Codice (Java): [Seleziona]
if (Device.getType() == Device.EMULATOR) { // codice inventato
  // fai qualcosa che mi serve solo sul dispositivo emulato
}

Seconda domanda

Si riesce a capire da codice se un applicazione è compilata in modalità debug o release? Banalmente quando sono in modalità debug vorrei fare dei log più approfonditi.

Offline blackgin

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 942
  • Respect: +100
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
    • CommaBit
  • Dispositivo Android:
    Galaxy Nexus
  • Market Developer Name:
    CommaBit
  • Sistema operativo:
    Mac OSX
Re:Capire se il device è emulato
« Risposta #3 il: 03 Agosto 2010, 17:40:02 CEST »
0
Per la seconda domanda:
Non ti basta fare una variabile che metti a "true" se sei in debug e a "false" se sei in Release e tramite questa controlli l'esecuzione di codice di logging?
Fate i bravi bimbi, postatelo il LogCat

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1578
  • Respect: +179
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus w/ CM9
  • Market Developer Name:
    Roberto Leinardi
  • Sistema operativo:
    Ubuntu 11.10
Re:Capire se il device è emulato
« Risposta #4 il: 03 Agosto 2010, 17:53:17 CEST »
0
Per la prima domanda:
Codice (Java): [Seleziona]
if (android.os.Build.MODEL.equals("google_sdk")) {
        // fai qualcosa che mi serve solo sul dispositivo emulato
        Toast.makeText(this, "Questo è un emulatore", Toast.LENGTH_LONG).show();
}
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline lithian

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Wildfire
  • Market Developer Name:
    Luca Minuti
  • Sistema operativo:
    Window XP
Re:Capire se il device è emulato
« Risposta #5 il: 03 Agosto 2010, 18:00:08 CEST »
0
Per la seconda domanda:
Non ti basta fare una variabile che metti a "true" se sei in debug e a "false" se sei in Release e tramite questa controlli l'esecuzione di codice di logging?

Come faccio a mettere a True una variabile se sono in debug?

Offline blackgin

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 942
  • Respect: +100
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
    • CommaBit
  • Dispositivo Android:
    Galaxy Nexus
  • Market Developer Name:
    CommaBit
  • Sistema operativo:
    Mac OSX
Re: Capire se il device è emulato
« Risposta #6 il: 06 Agosto 2010, 10:23:05 CEST »
0
Manualmente..
Fate i bravi bimbi, postatelo il LogCat

Offline MarcoDuff

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 914
  • Respect: +150
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    HTC Desire
  • Market Developer Name:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Capire se il device è emulato
« Risposta #7 il: 06 Agosto 2010, 12:02:48 CEST »
+1
Seconda domanda

Si riesce a capire da codice se un applicazione è compilata in modalità debug o release? Banalmente quando sono in modalità debug vorrei fare dei log più approfonditi.

Ecco il codice:
Codice (Java): [Seleziona]
ApplicationInfo applicationInfo = this.getApplicationInfo();
if((applicationInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE)!=0x0) {
        // TODO: android:debuggable true
}
else {
        // TODO: android:debuggable false o non impostato
}
Le mie Applicazioni Android | Il mio Blog

Io faccio parte del Gruppo AndDev.it LOGTFO, tu no? Allora GTFO!
Quando un utente fornisce una risposta utile si può ringraziarlo premendo il tasto  alla destra del titolo del post. (Ricky` rulez)

Offline lithian

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Wildfire
  • Market Developer Name:
    Luca Minuti
  • Sistema operativo:
    Window XP
Re:Capire se il device è emulato
« Risposta #8 il: 06 Agosto 2010, 12:30:35 CEST »
0
Ecco il codice:
Codice (Java): [Seleziona]
ApplicationInfo applicationInfo = this.getApplicationInfo();
if((applicationInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE)!=0x0) {
        // TODO: android:debuggable true
}
else {
        // TODO: android:debuggable false o non impostato
}

Perfetto, esattamente quello che mi serviva