title: Android BluetoothSocket.isConnected always returns false
body: <p>I am trying to detect whether a bluetooth device is currently connected to an Android device using API 14 or better.  It seems like I should be able to use the BluetoothSocket.isConnected() method, but no matter what I've done, so far I just get false back for anything, connected or not.</p>
  
  <p>AndroidManifest includes these lines:</p>
  
  <pre><code>&lt;uses-permission android:name="android.permission.BLUETOOTH" /&gt;
  &lt;uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /&gt;
  
  &lt;!-- Locale 4.x supports API 14 or greater. --&gt;
  &lt;uses-sdk android:minSdkVersion="14" android:targetSdkVersion="17" /&gt;
  
  &lt;uses-feature android:name="android.hardware.bluetooth" /&gt;
  </code></pre>
  
  <p>And the code in question:</p>
  
  <pre><code>protected void onCreate(final Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
  
      Set&lt;BluetoothDevice&gt; pairedDevices = mBluetoothAdapter.getBondedDevices();
  
      for (BluetoothDevice device : pairedDevices) {
          Log.i(Constants.LOG_TAG, String.format(Locale.US, "Device: %s connected: %b", device.getName(), isConnected(device))); //$NON-NLS-1$z
      }
  }
  
  private boolean isConnected(BluetoothDevice device) {
      BluetoothSocket socket = null;
  
      // Get a BluetoothSocket for a connection with the given BluetoothDevice
      UUID SPP_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
      try {
          socket = device.createRfcommSocketToServiceRecord(SPP_UUID);
      } catch (IOException e) {
          Log.e(Constants.LOG_TAG, e.getMessage()); //$NON-NLS-1$z
          return false;
      }
  
      Log.i(Constants.LOG_TAG, socket.toString()); //$NON-NLS-1$z
  
      return socket.isConnected();
  }
  </code></pre>
  
  <p>No errors are thrown, it simply returns "false" 100% of the time.  Is there something that I'm not doing right?</p>