summaryrefslogtreecommitdiffstats
path: root/core/java/android/bluetooth
diff options
context:
space:
mode:
authorNick Pelly <npelly@google.com>2009-09-24 11:14:15 -0700
committerNick Pelly <npelly@google.com>2009-09-24 19:34:54 -0700
commit18b1e79a123b979d25bfa5d0b0ee5d0382dbd64b (patch)
treee0d6ccb1c8c3c7b6a653253f0b98a416f3521025 /core/java/android/bluetooth
parentcc89ef3d6e9b1f9be657c9158ad04b8de104434c (diff)
downloadframeworks_base-18b1e79a123b979d25bfa5d0b0ee5d0382dbd64b.zip
frameworks_base-18b1e79a123b979d25bfa5d0b0ee5d0382dbd64b.tar.gz
frameworks_base-18b1e79a123b979d25bfa5d0b0ee5d0382dbd64b.tar.bz2
Bluetooth API: Do not allow apps to programmatically make BT discoverable.
Instead add ACTION_REQUEST_DISCOVERABLE for the system to show a dialog to adjust discoverable mode. Also remove createBond(), removeBond() and cancelBondProcess(). The Settings App already handles these automatically when connections require bonding. Change-Id: I216154cd1b6de410de64ba91b07d7263ac03e8df
Diffstat (limited to 'core/java/android/bluetooth')
-rw-r--r--core/java/android/bluetooth/BluetoothAdapter.java39
-rw-r--r--core/java/android/bluetooth/BluetoothDevice.java3
2 files changed, 41 insertions, 1 deletions
diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java
index 1fc22fe..6aec52c 100644
--- a/core/java/android/bluetooth/BluetoothAdapter.java
+++ b/core/java/android/bluetooth/BluetoothAdapter.java
@@ -104,6 +104,38 @@ public final class BluetoothAdapter {
public static final int STATE_TURNING_OFF = 13;
/**
+ * Activity Action: Show a system activity that requests discoverable mode.
+ * <p>Discoverable mode is equivalent to {@link
+ * #SCAN_MODE_CONNECTABLE_DISCOVERABLE}. It allows remote devices to see
+ * this Bluetooth adapter when they perform a discovery.
+ * <p>For privacy, Android is not by default discoverable.
+ * <p>The sender can optionally use extra field {@link
+ * #EXTRA_DISCOVERABLE_DURATION} to request the duration of
+ * discoverability. Currently the default duration is 120 seconds, and
+ * maximum duration is capped at 300 seconds for each request.
+ * <p>Notification of the result of this activity is posted using the
+ * {@link android.app.Activity#onActivityResult} callback. The
+ * <code>resultCode</code>
+ * will be the duration (in seconds) of discoverability, or a negative
+ * value if the user rejected discoverability.
+ * <p>Applications can also listen for {@link #ACTION_SCAN_MODE_CHANGED}
+ * for global notification whenever the scan mode changes.
+ * <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}
+ */
+ @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
+ public static final String ACTION_REQUEST_DISCOVERABLE =
+ "android.bluetooth.adapter.action.REQUEST_DISCOVERABLE";
+
+ /**
+ * Used as an optional int extra field in {@link
+ * #ACTION_REQUEST_DISCOVERABLE} intents to request a specific duration
+ * for discoverability in seconds. The current default is 120 seconds, and
+ * requests over 300 seconds will be capped. These values could change.
+ */
+ public static final String EXTRA_DISCOVERABLE_DURATION =
+ "android.bluetooth.adapter.extra.DISCOVERABLE_DURATION";
+
+ /**
* Broadcast Action: Indicates the Bluetooth scan mode of the local Adapter
* has changed.
* <p>Always contains the extra fields {@link #EXTRA_SCAN_MODE} and {@link
@@ -388,10 +420,15 @@ public final class BluetoothAdapter {
* {@link #SCAN_MODE_NONE},
* {@link #SCAN_MODE_CONNECTABLE},
* {@link #SCAN_MODE_CONNECTABLE_DISCOVERABLE}.
- * <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}
+ * <p>Requires {@link android.Manifest.permission#WRITE_SECURE_SETTINGS}
+ * <p>Applications cannot set the scan mode. They should use
+ * <code>startActivityForResult(
+ * BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE})
+ * </code>instead.
*
* @param mode valid scan mode
* @return true if the scan mode was set, false otherwise
+ * @hide
*/
public boolean setScanMode(int mode) {
try {
diff --git a/core/java/android/bluetooth/BluetoothDevice.java b/core/java/android/bluetooth/BluetoothDevice.java
index b52a822..c714f69 100644
--- a/core/java/android/bluetooth/BluetoothDevice.java
+++ b/core/java/android/bluetooth/BluetoothDevice.java
@@ -427,6 +427,7 @@ public final class BluetoothDevice implements Parcelable {
* <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}.
*
* @return false on immediate error, true if bonding will begin
+ * @hide
*/
public boolean createBond() {
try {
@@ -440,6 +441,7 @@ public final class BluetoothDevice implements Parcelable {
* <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}.
*
* @return true on sucess, false on error
+ * @hide
*/
public boolean cancelBondProcess() {
try {
@@ -456,6 +458,7 @@ public final class BluetoothDevice implements Parcelable {
* <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}.
*
* @return true on sucess, false on error
+ * @hide
*/
public boolean removeBond() {
try {