2014-01-09 2 views
1

사실 현재 나는 블루투스 저전력 장치 주소를 데이터베이스에 저장하고 있습니다. 언제든지 사용자는 listview를 탭하여 장치에서 값을 얻을 수 있습니다. 현재 장치를 제거 할 수있는 메커니즘이 없습니다 (장치가 범위에 있지 않으면 (스캐닝에서 찾을 수 없음)). 우리는 사용자가 장치 화면에 범위 .so를 사용자 탭에없는 경우 이전 역사의 가치를 데이터베이스에서 주소를 검색 및 추가 작업에 대한 BluetoothDevice 객체를 검색 할 수BluetoothLowEnergy 범위 문제 android

mBluetoothAdapter.getRemoteDevice(bleAddress);

방법을 사용할 수있는 기능을 제공하기 때문에 connectgatt 등 하지만 Google 문서에 따르면 getRemoteDevice (bleAddress)

장치가 Google 문서에 따라 범위 내에 있지 않더라도 반환합니다.

유효한 하드웨어 주소로 BluetoothDevice가 반환됩니다 (해당 어댑터를 본 적이없는 경우에도).

그래서 기기가 범위 내에 있는지 확인합니다. 나는 그것을 위해 타이머를 넣으려고 노력할 수 있지만, 좋은 선택이 아니므로 좀 더 생각해주세요. 내가 범위에서 .so를 상태와 함께 연결 시간이 안드로이드 후에없는 이미 장치 주소를 연결하려고 생각하면 주위에 몇 가지 작업을 발견

[업데이트] 확인 (133)

@Override 
    public void onConnectionStateChange(BluetoothGatt gatt, int status, 
      int newState) { 
      if(status==133){ 
       Intent intent=new Intent(FetchBluetoothCharacteristicService.DEVICE_NOT_RANGE); 
       sendBroadcast(intent); 
      } 
      if (newState == BluetoothProfile.STATE_CONNECTED) { 

       Log.d(TAG, "GATT DEVICE CONNECTED"); 
       Log.d(TAG, 
         "And Attempting to start service discovery:" 
           + gatt.discoverServices()); 
      } else if (newState == BluetoothProfile.STATE_DISCONNECTED) { 
       close(); 
       Intent intent=new Intent(FetchBluetoothCharacteristicService.DEVICE_DISCONNECTED); 
       intent.putExtra(COUNTER, counter); 
       sendBroadcast(intent); 
      } 
    } 

답변

0

RSSI을보고 범위 내에 있는지 확인하십시오. 그것을 찾을 수없는 경우 또는 FALSE - 당신에게 수신 신호 장치의 강도를 말할 것

https://developer.android.com/reference/android/bluetooth/BluetoothGatt.html#readRemoteRssi%28%29

.

+0

답장을 보내 주셔서 감사합니다. 그러나 실제로 rssi 값은 기기가 연결되어 있는지 검색합니다. 연결된 원격 장치의 RSSI를 읽습니다. 및 안드로이드 API 문제 때문입니다. 시작과 멈춤을 반복적으로 사용하여 rssi 값을 얻습니다. 다시 결과가 정확하지 않습니다. – mcd

+0

BLE 광고 패킷에 RSSI 값이 포함되어 있으며이를 스캔하여 얻습니다 (실제로 장치에 연결되어 있지 않음). 나는 안드로이드에 익숙하지 않아, 당신이 그 값을 어디에서 얻을 수 있는지, 어디에서 얻을 수 있을지 모르겠습니다. –

+0

사실 당신 말이 맞지만 안드로이드 장치는 반복적으로 방송되지 않습니다. 그래서 반복적으로 스캔을 시작하고 중지해야합니다. 그래서 일부 시간 장치는 장치를 방송하는 데 시간이 걸립니다. 그래서 이것을 어떻게 관리 해야할지 모르겠군요? – mcd