2012-04-13 84 views
0

我正在开发一个使用Eclipse的android应用程序来返回蓝牙设备的RSSI值。我已经修改了Android蓝牙聊天示例以适应我的需要,但是我在返回RSSI值时遇到了问题。点击scan按钮以发现附近的设备后,它会返回设备名称,设备地址,并且还假设返回RSSI值,但它表示RSSI为nullAndroid返回蓝牙的“null”RSSI

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

    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); 
      // Get the Bluetooth RSSI 
      short Rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI,Short.MIN_VALUE); 
      // If it's already paired, skip it, because it's been listed already 
      // Added getRssi() 
      if (device.getBondState() != BluetoothDevice.BOND_BONDED) { 
       mNewDevicesArrayAdapter.add(device.getName() + "\n" + device.getAddress() + getRssi()); 
      } 
     // When discovery is finished, change the Activity title 
     } else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) { 
      setProgressBarIndeterminateVisibility(false); 
      setTitle(R.string.select_device); 
      if (mNewDevicesArrayAdapter.getCount() == 0) { 
       String noDevices = getResources().getText(R.string.none_found).toString(); 
       mNewDevicesArrayAdapter.add(noDevices); 
      } 
     } 
    } 
}; 

回答

0

这是我如何得到RSSI

字符串deviceRSSI = (intent.getExtras())得到(BluetoothDevice.EXTRA_RSSI)的ToString()。

private final BroadcastReceiver ActionFoundReceiver = new BroadcastReceiver() { 

     @Override 
     public void onReceive(Context context, Intent intent) { 
      // TODO Auto-generated method stub 
      String action = intent.getAction(); 
      if (BluetoothDevice.ACTION_FOUND.equals(action)) { 
       BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 
       String deviceRSSI = (intent.getExtras()).get(BluetoothDevice.EXTRA_RSSI).toString(); 

       btArrayAdapter.add(device.getName() + "\n" + device.getAddress() + "\n" + deviceRSSI); 
       btArrayAdapter.notifyDataSetChanged(); 
      } 

      if (action.equals(BluetoothAdapter.ACTION_DISCOVERY_STARTED)) { 

      } else if (action.equals(BluetoothAdapter.ACTION_DISCOVERY_FINISHED)) { 

      } 
     } 
    };