Loading core/java/android/bluetooth/BluetoothAdapter.java +29 −0 Original line number Diff line number Diff line Loading @@ -1858,6 +1858,35 @@ public final class BluetoothAdapter { return listenUsingL2capOn(port, false, false); } /** * Construct an insecure L2CAP server socket. * Call #accept to retrieve connections to this socket. * <p>To auto assign a port without creating a SDP record use * {@link SOCKET_CHANNEL_AUTO_STATIC_NO_SDP} as port number. * @param port the PSM to listen on * @return An L2CAP BluetoothServerSocket * @throws IOException On error, for example Bluetooth not available, or * insufficient permissions. * @hide */ public BluetoothServerSocket listenUsingInsecureL2capOn(int port) throws IOException { BluetoothServerSocket socket = new BluetoothServerSocket( BluetoothSocket.TYPE_L2CAP, false, false, port, false, false); int errno = socket.mSocket.bindListen(); if(port == SOCKET_CHANNEL_AUTO_STATIC_NO_SDP) { socket.setChannel(socket.mSocket.getPort()); } if (errno != 0) { //TODO(BT): Throw the same exception error code // that the previous code was using. //socket.mSocket.throwErrnoNative(errno); throw new IOException("Error: " + errno); } return socket; } /** * Read the local Out of Band Pairing Data * <p>Requires {@link android.Manifest.permission#BLUETOOTH} Loading core/java/android/bluetooth/BluetoothDevice.java +21 −0 Original line number Diff line number Diff line Loading @@ -1411,6 +1411,27 @@ public final class BluetoothDevice implements Parcelable { null); } /** * Create an L2cap {@link BluetoothSocket} ready to start an insecure * outgoing connection to this remote device on given channel. * <p>The remote device will be not authenticated and communication on this * socket will not be encrypted. * <p>Use {@link BluetoothSocket#connect} to initiate the outgoing * connection. * <p>Valid L2CAP PSM channels are in range 1 to 2^16. * <p>Requires {@link android.Manifest.permission#BLUETOOTH} * * @param channel L2cap PSM/channel to connect to * @return a RFCOMM BluetoothServerSocket ready for an outgoing connection * @throws IOException on error, for example Bluetooth not available, or * insufficient permissions * @hide */ public BluetoothSocket createInsecureL2capSocket(int channel) throws IOException { return new BluetoothSocket(BluetoothSocket.TYPE_L2CAP, -1, false, false, this, channel, null); } /** * Create an RFCOMM {@link BluetoothSocket} ready to start a secure * outgoing connection to this remote device using SDP lookup of uuid. Loading Loading
core/java/android/bluetooth/BluetoothAdapter.java +29 −0 Original line number Diff line number Diff line Loading @@ -1858,6 +1858,35 @@ public final class BluetoothAdapter { return listenUsingL2capOn(port, false, false); } /** * Construct an insecure L2CAP server socket. * Call #accept to retrieve connections to this socket. * <p>To auto assign a port without creating a SDP record use * {@link SOCKET_CHANNEL_AUTO_STATIC_NO_SDP} as port number. * @param port the PSM to listen on * @return An L2CAP BluetoothServerSocket * @throws IOException On error, for example Bluetooth not available, or * insufficient permissions. * @hide */ public BluetoothServerSocket listenUsingInsecureL2capOn(int port) throws IOException { BluetoothServerSocket socket = new BluetoothServerSocket( BluetoothSocket.TYPE_L2CAP, false, false, port, false, false); int errno = socket.mSocket.bindListen(); if(port == SOCKET_CHANNEL_AUTO_STATIC_NO_SDP) { socket.setChannel(socket.mSocket.getPort()); } if (errno != 0) { //TODO(BT): Throw the same exception error code // that the previous code was using. //socket.mSocket.throwErrnoNative(errno); throw new IOException("Error: " + errno); } return socket; } /** * Read the local Out of Band Pairing Data * <p>Requires {@link android.Manifest.permission#BLUETOOTH} Loading
core/java/android/bluetooth/BluetoothDevice.java +21 −0 Original line number Diff line number Diff line Loading @@ -1411,6 +1411,27 @@ public final class BluetoothDevice implements Parcelable { null); } /** * Create an L2cap {@link BluetoothSocket} ready to start an insecure * outgoing connection to this remote device on given channel. * <p>The remote device will be not authenticated and communication on this * socket will not be encrypted. * <p>Use {@link BluetoothSocket#connect} to initiate the outgoing * connection. * <p>Valid L2CAP PSM channels are in range 1 to 2^16. * <p>Requires {@link android.Manifest.permission#BLUETOOTH} * * @param channel L2cap PSM/channel to connect to * @return a RFCOMM BluetoothServerSocket ready for an outgoing connection * @throws IOException on error, for example Bluetooth not available, or * insufficient permissions * @hide */ public BluetoothSocket createInsecureL2capSocket(int channel) throws IOException { return new BluetoothSocket(BluetoothSocket.TYPE_L2CAP, -1, false, false, this, channel, null); } /** * Create an RFCOMM {@link BluetoothSocket} ready to start a secure * outgoing connection to this remote device using SDP lookup of uuid. Loading