Autore Topic: Bluetooth: quando termina la ricerca dispositivi?  (Letto 692 volte)

Offline Phate

  • Utente junior
  • **
  • Post: 123
  • Respect: +6
    • Mostra profilo
  • Dispositivo Android:
    Samsung galaxy S
  • Sistema operativo:
    Windows 7
Bluetooth: quando termina la ricerca dispositivi?
« il: 18 Maggio 2012, 09:55:01 CEST »
0
Ciao, è una mia impressione o tra gli eventi relativi alla ricerca non ce n'è uno tipo SEARCH COMPLETED?
Vorrei visualizzare una sorta di progresso nella ricerca e dare la possibilità di interromperla nel mezzo ma non so come fare...

Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:Bluetooth: quando termina la ricerca dispositivi?
« Risposta #1 il: 18 Maggio 2012, 15:52:16 CEST »
+1
Si c'è, questo il mio broadcastReceiver:

Codice (Java): [Seleziona]
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
                @Override
                public void onReceive(Context context, Intent intent) {

                        String action = intent.getAction();

                        // When discovery finds a device
                        if (BluetoothDevice.ACTION_FOUND.equals(action)) {
                                // Get the BluetoothDevice object from the Intent
                                BluetoothDevice device = intent
                                                .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);

                                if (device.getBondState() != BluetoothDevice.BOND_BONDED) {
                                        arrayAdapter.add(device.getName() + "\n"
                                                        + device.getAddress());

                                }

                                // When discovery is finished, change the Activity title
                        } else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED
                                        .equals(action)) {
                                dialog.cancel();
                                // setTitle(R.string.select_device);
                                if (arrayAdapter.getCount() == 0) {
                                        String noDevices = getResources().getText(
                                                        R.string.none_found).toString();
                                        arrayAdapter.add(noDevices);
                                }
                        }
                }
        };

Per interromperla basta che chiami cancelDiscovery() sul tuo adapter.

Codice (Java): [Seleziona]
adapter.cancelDiscovery();
Per fare una cosa tipo prograssBar... diventa complesso. io non l'ho fatta dato che faccio fare il discovery in background, quando trova qualcosa mi aggiorna una listview e quando il broadcastreceiver mi trova ...COMPLETED gli faccio fare un toast che la scansione è finita (potresti fare anche una finestra di dialogo).

Offline Phate

  • Utente junior
  • **
  • Post: 123
  • Respect: +6
    • Mostra profilo
  • Dispositivo Android:
    Samsung galaxy S
  • Sistema operativo:
    Windows 7
Re:Bluetooth: quando termina la ricerca dispositivi?
« Risposta #2 il: 19 Maggio 2012, 09:59:33 CEST »
0
Ecco dov'era nascosto!!XD

Senti forse è un po' un imbroglio, ma ho stimato che la ricerca prende tra i 13 e i 14 secondi e anche la documentazione ufficiale conferma che i tempi quelli sono...e se facessi partire semplicemente un thread che a ogni secondo mi aumenta la progress bar fino a 14?
Alla fine è solo un vezzo grafico...dici che questo valore può cambiare molto di hardware in hardware?

Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:Bluetooth: quando termina la ricerca dispositivi?
« Risposta #3 il: 19 Maggio 2012, 12:44:30 CEST »
+1
Ecco dov'era nascosto!!XD

Senti forse è un po' un imbroglio, ma ho stimato che la ricerca prende tra i 13 e i 14 secondi e anche la documentazione ufficiale conferma che i tempi quelli sono...e se facessi partire semplicemente un thread che a ogni secondo mi aumenta la progress bar fino a 14?
Alla fine è solo un vezzo grafico...dici che questo valore può cambiare molto di hardware in hardware?

Non l'avevo scritto, ma pure io avrei fatto così. Potrebbe si variare da HW a HW, ma poco importa. Unica cosa che aggiungerei, un BroadcastReceiver che mi dica quando ha finito la scansione per poter "riempire" la progressbar e/o passare ad un altra schermata.

Offline Phate

  • Utente junior
  • **
  • Post: 123
  • Respect: +6
    • Mostra profilo
  • Dispositivo Android:
    Samsung galaxy S
  • Sistema operativo:
    Windows 7
Re:Bluetooth: quando termina la ricerca dispositivi?
« Risposta #4 il: 19 Maggio 2012, 14:04:28 CEST »
0
Fatto anche questo! Grazie mille!