Javadoc, and unhide the first pieces of the Bluetooth API.
With this commit there is enough public API to connect and use an RFCOMM
connection between Bluetooth devices.
Split BluetoothDevice into BluetoothDevice and BluetoothAdapter.
BluetoothAdapter: Represents the local BT adapter. Operations on the local
adapter (start a scan, etc).
BluetoothDevice: Represents a remote BT device. Operations on remote devices
(pair, connect, etc).
IBluetoothDevice.aidl -> Bluetooth.aidl
BluetoothDeviceService.java -> BluetoothDeviceService.java
TODO:
Javadoc
- Update according to comments
- Add aidl support in frameworks for Settings to retrieve current
PBAP transaction status.
- Add status bar support for PBAP
Merge commit '03255de32d127d17504b6d475e6e79190dd637f8'
* commit '03255de32d127d17504b6d475e6e79190dd637f8':
Add getBatteryUsageHint() to BluetoothHeadset for power monitoring.
This is a monotonically increasing integer. Wraps to 0 at
Integer.MAX_INT, and at boot.
Current implementation returns the number of AT commands handled since
boot. This is a good indicator for spammy headset/handsfree units that
can keep the device awake by polling for cellular status updates. As a
rule of thumb, each AT command prevents the CPU from sleeping for 500 ms
InputStream.read() must return values in range [0, 255]. But the previous code
would sign extend when casting to int so return [-128, 127]. Bitwise AND with
0xff to remove sign extension.
Modeled on blocking java.net.Socket and java.net.ServerSocket library.
Public interface is:
public final class BluetoothSocket implements Closeable {
public static BluetoothSocket createRfcommSocket(String address, int port) throws IOException;
public static BluetoothSocket createInsecureRfcommSocket(String address, int port) throws IOException;
public void connect() throws IOException;
public void close() throws IOException;
public String getAddress();
public InputStream getInputStream() throws IOException;
public OutputStream getOutputStream() throws IOException;
}
public final class BluetoothServerSocket implements Closeable {
public static BluetoothServerSocket listenUsingRfcommOn(int port) throws IOException;
public static BluetoothServerSocket listenUsingUnsecureRfcommOn(int port) throws IOException;
public BluetoothSocket accept() throws IOException;
public BluetoothSocket accept(int timeout) throws IOException;
public void close() throws IOException;
}
This provided SDP functionality to Java, but is not currently used by any Apps.
I will shortly be providing SDP functionality in a new API, but it will be
quite different to this one, and in the mean-time keeping this stale code
updated with other API changes is a pain.
Also clean up the error codes returned by the framework, so that the settings app can properly detect an error.
Original author: npelly
Merged from: //branches/cupcake/...
Automated import of CL 143788
Also clean up the error codes returned by the framework, so that the settings app can properly detect an error.
Original author: npelly
Merged from: //branches/cupcake/...
Original author: android-build
Merged from: //branches/donutburger/...
Automated import of CL 143812