Revert the channge where channels were not selected randomly.

The Bluez SDP bug has been fixed.
Reverting parts of the commit: 16fb88a673c41b93c5d57ccb28c2697e7d87701a

Bug: 2173752
Dr No: Eastham
diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java
index ff48583..3fc676b 100644
--- a/core/java/android/bluetooth/BluetoothAdapter.java
+++ b/core/java/android/bluetooth/BluetoothAdapter.java
@@ -597,14 +597,6 @@
     /**
      * Picks RFCOMM channels until none are left.
      * Avoids reserved channels.
-     * Ideally we would pick random channels, but in the current implementation
-     * we start with the channel that is the hash of the UUID, and try every
-     * available channel from there. This means that in most cases a given
-     * uuid will use the same channel. This is a workaround for a Bluez SDP
-     * bug where we are not updating the cache when the channel changes for a
-     * uuid.
-     * TODO: Fix the Bluez SDP caching bug, and go back to random channel
-     * selection
      */
     private static class RfcommChannelPicker {
         private static final int[] RESERVED_RFCOMM_CHANNELS =  new int[] {
@@ -637,19 +629,12 @@
             }
             mUuid = uuid;
         }
-        /* Returns next channel, or -1 if we're out */
+        /* Returns next random channel, or -1 if we're out */
         public int nextChannel() {
-            int channel = mUuid.hashCode();  // always pick the same channel to try first
-            Integer channelInt;
-            while (mChannels.size() > 0) {
-                channelInt = new Integer(channel);
-                if (mChannels.remove(channelInt)) {
-                    return channel;
-                }
-                channel = (channel % BluetoothSocket.MAX_RFCOMM_CHANNEL) + 1;
+            if (mChannels.size() == 0) {
+                return -1;
             }
-
-            return -1;
+            return mChannels.remove(sRandom.nextInt(mChannels.size()));
         }
     }