Autore Topic: Set discoverability Bluetooth > di 300 s per api 10 o inferiori. (GINGERBREAD)  (Letto 465 volte)

Offline dr4gone

  • Utente junior
  • **
  • Post: 66
  • Respect: +1
    • Mostra profilo
Ciao a tutti.
Mi sto scervellando da un po di tempo con questo problema. Cioè riuscire a settare il tempo per il quale il bluetooth è visibile agli altri su gingerbread o versioni precendenti.

Dalla documentazione si legge:
Citazione
public static final String EXTRA_DISCOVERABLE_DURATION

Added in API level 5
Used as an optional int extra field in ACTION_REQUEST_DISCOVERABLE intents to request a specific duration for discoverability in seconds. The current default is 120 seconds, and requests over 300 seconds will be capped. These values could change.

Constant Value: "android.bluetooth.adapter.extra.DISCOVERABLE_DURATION"


Quindi non c'è modo di farlo... secondo la documentazione ufficiale.

Da ICS in poi basta settare android.bluetooth.adapter.extra.DISCOVERABLE_DURATION =0 ... perr averlo sempre attivo.
Cosa che non funziona comunque su GINGERBREAD.

Avete un modo (anche il più sporco possibile va bene) per risolvere questo fastidioso inconveniente?
Grazie per le eventuali soluzioni

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:Set discoverability Bluetooth > di 300 s per api 10 o inferiori. (GINGERBREAD)
« Risposta #1 il: 26 Aprile 2013, 13:59:24 CEST »
0
un modo che mi viene cosi al volo (da provare, mai fatto) è mettere un azione schedulata ogni 300 sec ( o meno o più,va verificato) che ogni volta richiama il discoverability con 300 secondi. Tutto questo ovviamente solo fino a ICS...
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 dr4gone

  • Utente junior
  • **
  • Post: 66
  • Respect: +1
    • Mostra profilo
Re:Set discoverability Bluetooth > di 300 s per api 10 o inferiori. (GINGERBREAD)
« Risposta #2 il: 26 Aprile 2013, 14:35:32 CEST »
0
La stessa cosa che ho pensato io... ma il problema principale è che quando lo vado a fare non estende la durata automaticamente, ma richiede sempre l'autorizzazione.. e non si può stare li a farlo ogni 5 minuti...

Magari lo faccio nel modo sbagliato.
Uso questa funzione con successo dopo ICS
Codice (Java): [Seleziona]
private void enableAlwaysDiscoverable()
                {
                discoverableIntent = new
                                        Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
                                        discoverableIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                        discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0);
                                        startActivity(discoverableIntent);
                                        Log.i(TAG, "Set discoverable always OK");
                }
Per prova ho creato un metodo run che viene chiamato ogni 250 secondi che mi richiama

Codice (Java): [Seleziona]
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0);
                                        startActivity(discoverableIntent)

Ma mi richiede sempre  e comunque l'autorizzazione... :(
Sono un po sconfortato