2012-07-10 9 views
11

Mam napisać aplikację, która będzie działać jako klient bluetooth. Co próbuję zrobić, to dowiedzieć się, jaki byłby najlepszy sposób, aby dowiedzieć się, czy konkretne urządzenie, które obsługuję, znajduje się w zasięgu, bez próby wykonywania przez niego funkcji BluetoothDevice.connect() i nie. jeśli nie jest w zasięgu. Zakładamy, że urządzenie zostało już sparowane.Właściwy sposób na sprawdzenie, czy sparowane urządzenie z Androidem Bluetooth znajduje się w zasięgu?

Obawiam się, że próba połączenia z określonym urządzeniem przez cały czas, dopóki nie znajdzie się w zasięgu, byłaby zła. Wydaje mi się, że byłoby to złe dla baterii.

Czy ktoś wie o metodach lub pojęciach, które powinny zostać użyte do wykonania tego, co próbuję zrobić?

Dzięki!

+2

Szukały tutaj: http://stackoverflow.com/questions/9596978/samsung-galaxy-bluetooth-drivers –

+0

wziąłem wygląd, ale nie mogłem znaleźć niczego bezpośrednio związane z moim pytaniem, może brakowało mi to? –

+0

Pokaż nam, jaki kod wypróbowałeś i od tej chwili możemy pracować. –

Odpowiedz

1

OK, tak jak rozumiem na podstawie Twojego pytania, czy chcesz uzyskać nazwę urządzenia, z którym jesteś sparowany i czy jest ono w zasięgu?

Więc oto rozwiązanie: -

  1. utworzyć klasę o nazwie DeviceDetails:

klasy DeviceDetails { publicznych String name; publiczny adres ciągu; public BluetoothDevice remoteDevice; }

  1. trzeba połączyć i powiązać urządzeń jak wyjaśniono here, kiedy już to zrobi, a połączenie zostanie nawiązane, utworzyć obiekt DeviceDetails.

  2. DeviceDetails selectedDevice; i jeśli masz niestandardowy adapter, aby wyświetlić listę urządzeń przekazujących pozycję z widoku do wybranego odniesienia do urządzenia. Przykład: - selectedDevice = adapter.getItem(pos);

  3. Teraz masz obiekt SelectedDevice, które zostały wybrane do parowania, co można zapisać swój adres i nazwisko w

    preferencji.

    Example:- 
    savePairedDeviceInfo(selectedDevice.name, selectedDevice.address); 
        public void savePairedDeviceInfo(String name, String addr) 
         { 
          if(name != null && !name.equalsIgnoreCase("")) 
           editor.putString(PNAME_OF_DEVICE, name); 
    
          if(addr != null && !addr.equalsIgnoreCase("")) 
           editor.putString(MAC_ADDRESS_OF_DEVICE, addr); 
    
          editor.commit(); 
         } 
    
  4. Teraz, następnym razem, gdy kiedykolwiek chcesz sprawdzić, czy konfiguracja parowania odbywa się albo nie sprawdzać nazwę i adres urządzenia poprzez uzyskanie wartości od preferencji. Użyj funkcji check (jeśli jest to konieczne), aby potwierdzić true, że starsze urządzenie, które było sparowane, było takie samo lub inne.

  5. Jeśli sparowane urządzenie znajduje się w zasięgu, można uzyskać tę samą wartość, którą próbowałoby sparować z innym urządzeniem.

Daj mi znać, jeśli zrozumiałeś z mojego wyjaśnienia, czy nie.

0

Możesz śledzić poniżej sposób:

  1. Get sparowany listę urządzeń z adapterem bluetooth
  2. start odkrycie
  3. Gdy urządzenie znajduje się powiedzmy urządzeń A, można sprawdzić, czy urządzenie A jest tam sparowanych urządzeń, czy nie.Jeśli urządzenie A jest jednym z powiązanych urządzeń, oznacza, że ​​jest to sparowane dostępne urządzenie w zasięgu.
Powiązane problemy