Merge "Allow the Bluetooth MAC address to be updated asynchronously (2/3)"
This commit is contained in:
@@ -465,6 +465,30 @@ public final class BluetoothAdapter {
|
|||||||
public static final String ACTION_BLE_STATE_CHANGED =
|
public static final String ACTION_BLE_STATE_CHANGED =
|
||||||
"android.bluetooth.adapter.action.BLE_STATE_CHANGED";
|
"android.bluetooth.adapter.action.BLE_STATE_CHANGED";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Intent used to broadcast the change in the Bluetooth address
|
||||||
|
* of the local Bluetooth adapter.
|
||||||
|
* <p>Always contains the extra field {@link
|
||||||
|
* #EXTRA_BLUETOOTH_ADDRESS} containing the Bluetooth address.
|
||||||
|
*
|
||||||
|
* Note: only system level processes are allowed to send this
|
||||||
|
* defined broadcast.
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public static final String ACTION_BLUETOOTH_ADDRESS_CHANGED =
|
||||||
|
"android.bluetooth.adapter.action.BLUETOOTH_ADDRESS_CHANGED";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used as a String extra field in {@link
|
||||||
|
* #ACTION_BLUETOOTH_ADDRESS_CHANGED} intent to store the local
|
||||||
|
* Bluetooth address.
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public static final String EXTRA_BLUETOOTH_ADDRESS =
|
||||||
|
"android.bluetooth.adapter.extra.BLUETOOTH_ADDRESS";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Broadcast Action: The notifys Bluetooth ACL connected event. This will be
|
* Broadcast Action: The notifys Bluetooth ACL connected event. This will be
|
||||||
* by BLE Always on enabled application to know the ACL_CONNECTED event
|
* by BLE Always on enabled application to know the ACL_CONNECTED event
|
||||||
|
|||||||
@@ -122,6 +122,7 @@
|
|||||||
<protected-broadcast android:name="android.bluetooth.adapter.action.DISCOVERY_STARTED" />
|
<protected-broadcast android:name="android.bluetooth.adapter.action.DISCOVERY_STARTED" />
|
||||||
<protected-broadcast android:name="android.bluetooth.adapter.action.DISCOVERY_FINISHED" />
|
<protected-broadcast android:name="android.bluetooth.adapter.action.DISCOVERY_FINISHED" />
|
||||||
<protected-broadcast android:name="android.bluetooth.adapter.action.LOCAL_NAME_CHANGED" />
|
<protected-broadcast android:name="android.bluetooth.adapter.action.LOCAL_NAME_CHANGED" />
|
||||||
|
<protected-broadcast android:name="android.bluetooth.adapter.action.BLUETOOTH_ADDRESS_CHANGED" />
|
||||||
<protected-broadcast android:name="android.bluetooth.adapter.action.CONNECTION_STATE_CHANGED" />
|
<protected-broadcast android:name="android.bluetooth.adapter.action.CONNECTION_STATE_CHANGED" />
|
||||||
<protected-broadcast android:name="android.bluetooth.device.action.UUID" />
|
<protected-broadcast android:name="android.bluetooth.device.action.UUID" />
|
||||||
<protected-broadcast android:name="android.bluetooth.device.action.MAS_INSTANCE" />
|
<protected-broadcast android:name="android.bluetooth.device.action.MAS_INSTANCE" />
|
||||||
|
|||||||
@@ -307,6 +307,14 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
|
|||||||
if (newName != null) {
|
if (newName != null) {
|
||||||
storeNameAndAddress(newName, null);
|
storeNameAndAddress(newName, null);
|
||||||
}
|
}
|
||||||
|
} else if (BluetoothAdapter.ACTION_BLUETOOTH_ADDRESS_CHANGED.equals(action)) {
|
||||||
|
String newAddress = intent.getStringExtra(BluetoothAdapter.EXTRA_BLUETOOTH_ADDRESS);
|
||||||
|
if (newAddress != null) {
|
||||||
|
if (DBG) Slog.d(TAG, "Bluetooth Adapter address changed to " + newAddress);
|
||||||
|
storeNameAndAddress(null, newAddress);
|
||||||
|
} else {
|
||||||
|
if (DBG) Slog.e(TAG, "No Bluetooth Adapter address parameter found");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -343,6 +351,9 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
|
|||||||
IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_LOCAL_NAME_CHANGED);
|
IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_LOCAL_NAME_CHANGED);
|
||||||
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
|
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
|
||||||
mContext.registerReceiver(mReceiver, filter);
|
mContext.registerReceiver(mReceiver, filter);
|
||||||
|
filter = new IntentFilter(BluetoothAdapter.ACTION_BLUETOOTH_ADDRESS_CHANGED);
|
||||||
|
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
|
||||||
|
mContext.registerReceiver(mReceiver, filter);
|
||||||
loadStoredNameAndAddress();
|
loadStoredNameAndAddress();
|
||||||
if (isBluetoothPersistedStateOn()) {
|
if (isBluetoothPersistedStateOn()) {
|
||||||
if (DBG) Slog.d(TAG, "Startup: Bluetooth persisted state is ON.");
|
if (DBG) Slog.d(TAG, "Startup: Bluetooth persisted state is ON.");
|
||||||
|
|||||||
Reference in New Issue
Block a user