2017-03-29 17 views
0

RSSI에 관한 문제가 있습니다. 인터넷에서 자원을 검토했습니다. 그러나 코드가 작동하지 않거나이 코드를 알지 못합니다. Bluetooth를 통해 연결하는 장치의 신호 강도를 받고 싶습니다. 또한 허가를 받아야합니까? 이것에 대한 모든 세부 사항을 설명 할 수 있습니까? 내 코드는 다음과 같습니다.Android Java Bluetooth RSSI 신호 강도

private final BroadcastReceiver receiver = new BroadcastReceiver(){ 
    @Override 
    public void onReceive(Context context, Intent intent) { 

     String action = intent.getAction(); 
     if(BluetoothDevice.ACTION_FOUND.equals(action)) { 
      int rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI,Short.MIN_VALUE); 
      Toast.makeText(BtControl.this," RSSI: " + rssi + "dBm", Toast.LENGTH_SHORT).show(); 
     } 
    } 
}; 

registerReceiver(receiver, new IntentFilter(BluetoothDevice.ACTION_ACL_CONNECTED)); 

답변

0

귀하는 ACTION_FOUND 조치에 등록해야합니다. registerreciever 코드를 아래로 변경하십시오.

registerReceiver(receiver, new IntentFilter(BluetoothDevice.ACTION_FOUND)); 

또한 매니페스트 파일에 BLUETOOTH_ADMIN 권한을 선언해야합니다.

+0

리시버를 액티비티에 정의했습니다. onCreate 함수에서 registerReceiver를 호출 한 후. 하지만 일하지 않아. 내가 잘못한 곳? 어떻게해야합니까? –

+0

의도 필터가 잘못되었습니다. 나는 그것을 고치고 대답으로 추가했습니다. – 7383

+0

안녕하세요, 다시 시도했습니다. 이번에는 효과가 있습니다. 나는 그것이 이전에 작동하지 않았다는 것을 이해할 수 없다. –