Autore Topic: Backup del db su SD [Was: Delucidazioni su BluetoothAdapter.getDefaultAdapter()]  (Letto 827 volte)

Offline g4b0

  • Nuovo arrivato
  • *
  • Post: 36
  • Respect: 0
    • Mostra profilo
    • gabo 3.0
  • Dispositivo Android:
    Nexus One
  • Sistema operativo:
    Debian Testing
Ciao a tutti,
La mia app ha un activity dalla quale posso collegarmi ad una stampante Bluetooth per stampare scontrini. Tutto funziona alla grande, ma mi sono accorto che sull'emulatore non funziona questo codice:

Codice (Java): [Seleziona]
                // Inizializzo il Bluetooth adapter
                mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
                // Se l'adapter é nullo allora il Bluetooth non é supportato
                if (mBluetoothAdapter == null) {
                        Toast.makeText(this, "Bluetooth non disponibile", Toast.LENGTH_LONG)
                                        .show();
                        this.finish();
                        return;
                }

Nel senso che l'activity passa all'onStart, crashando per via di una Null Pointer Exception non gestita (giustamente).

Possibile che BluetoothAdapter.getDefaultAdapter() sull'emulatore non ritorni null? Oppure non funziona la finish()?
« Ultima modifica: 22 Settembre 2011, 09:44:21 CEST da g4b0 »
--
g4b0, linux user n. 369000
http://brosulo.net

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:Delucidazioni sulla BluetoothAdapter.getDefaultAdapter() dell'emulatore
« Risposta #1 il: 21 Settembre 2011, 12:34:01 CEST »
0
Sull'emulatore il bluetooth non c'è, hai due possibilità:

1) Scrivi l'applicazione in modo che quando testi su emulatore, puoi provare tutti i suoi componenti (escluso bluetooth), come se tu fossi collegato al dispositivo hardware (in un certo senso lo emuli). Poi passi a testare la sola parte BT su device reale.

2) Fai tutto su device reale.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline g4b0

  • Nuovo arrivato
  • *
  • Post: 36
  • Respect: 0
    • Mostra profilo
    • gabo 3.0
  • Dispositivo Android:
    Nexus One
  • Sistema operativo:
    Debian Testing
Re:Delucidazioni sulla BluetoothAdapter.getDefaultAdapter() dell'emulatore
« Risposta #2 il: 21 Settembre 2011, 12:37:11 CEST »
0
Infatti sto sviluppando su dispositivo reale, anche se mi infastidisce il non riuscire ad accedere al db sqlite tramite il Questoid Sqlite Browser (il file explorer é vuoto)

La mia perplessitá era sul return value di BluetoothAdapter.getDefaultAdapter() sull'emulatore, che non é null...
--
g4b0, linux user n. 369000
http://brosulo.net

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:Delucidazioni sulla BluetoothAdapter.getDefaultAdapter() dell'emulatore
« Risposta #3 il: 21 Settembre 2011, 12:40:10 CEST »
0
Infatti sto sviluppando su dispositivo reale, anche se mi infastidisce il non riuscire ad accedere al db sqlite tramite il Questoid Sqlite Browser (il file explorer é vuoto)

Concordo col fatto che "dovrebbe" esserci una qualche forma di emulazione... richiesta da mettere in coda ad un emulatore più performante per tablet.  :D
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

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:Delucidazioni sulla BluetoothAdapter.getDefaultAdapter() dell'emulatore
« Risposta #4 il: 21 Settembre 2011, 17:33:24 CEST »
0
Concordo col fatto che "dovrebbe" esserci una qualche forma di emulazione... richiesta da mettere in coda ad un emulatore più performante per tablet.  :D
sull'emulatore non c'è emulazione perchè mancano i driver, come per la camera... mi pare che c'era un progetto che faceva funzionare la cosa...

per il file explorer, io ho pensato a una soluzione (per ora ancora non implementata)...
mi faccio una fake activity o una cosa nelle impostazioni, che mi va a copiare il db dalla cartella della app, a una cartella sulla sd. Facendo cosi anche se non hai i permessi di root sull'app, puoi cmq vedere il db perchè lo hai sulla sd...
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 g4b0

  • Nuovo arrivato
  • *
  • Post: 36
  • Respect: 0
    • Mostra profilo
    • gabo 3.0
  • Dispositivo Android:
    Nexus One
  • Sistema operativo:
    Debian Testing
Re:Delucidazioni sulla BluetoothAdapter.getDefaultAdapter() dell'emulatore
« Risposta #5 il: 21 Settembre 2011, 17:36:38 CEST »
0
In effetti é una buona idea. L'implementazione non dovrebbe neanche essere troppo difficile, basterebbe mettere una voce di menu per lanciare un thread che si occupa della copia.

Appena ho tempo vedo di trasformare la cosa in codice.
--
g4b0, linux user n. 369000
http://brosulo.net

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:Delucidazioni sulla BluetoothAdapter.getDefaultAdapter() dell'emulatore
« Risposta #6 il: 21 Settembre 2011, 17:38:03 CEST »
0
In effetti é una buona idea. L'implementazione non dovrebbe neanche essere troppo difficile, basterebbe mettere una voce di menu per lanciare un thread che si occupa della copia.

Appena ho tempo vedo di trasformare la cosa in codice.
Grande! fai uno snippet poi!
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 g4b0

  • Nuovo arrivato
  • *
  • Post: 36
  • Respect: 0
    • Mostra profilo
    • gabo 3.0
  • Dispositivo Android:
    Nexus One
  • Sistema operativo:
    Debian Testing
Re:Delucidazioni sulla BluetoothAdapter.getDefaultAdapter() dell'emulatore
« Risposta #7 il: 22 Settembre 2011, 09:43:10 CEST »
0
Ho trovato questo link in cui hanno implementato esattamente quello di cui parliamo:

Backing up your Android SQLite database to the SD card | Screaming Penguin

Funziona alla grande, ricordatevi peró di mettere il permesso WRITE_EXTERNAL_STORAGE nel manifest, onde evitare di smadonnare mezz'ora  8-)
--
g4b0, linux user n. 369000
http://brosulo.net