[DO NOT MERGE] Bluetooth support for Headless User
If Headless User 0 is enabled then don't launch Bluetooth until after user has switched out of 0. This is specifically an issue for automotive platforms. Bug: 118400949 Test: Boot device while headless user 0 is enabled, with a paired Bluetooth device in a phonecall. Change-Id: I9ea833df7ae7dc8841102ab9693f3810b31f672f (cherry picked from commit 195a1c026fb17ab8b4fa0dd812381fe39126d213)
This commit is contained in:
committed by
Ram Periathiruvadi
parent
789635b6c1
commit
60cae8d359
@@ -18,15 +18,26 @@ package com.android.server;
|
||||
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import android.content.Context;
|
||||
import android.os.SystemProperties;
|
||||
|
||||
class BluetoothService extends SystemService {
|
||||
private static final String HEADLESS_SYSTEM_USER = "android.car.systemuser.headless";
|
||||
|
||||
private BluetoothManagerService mBluetoothManagerService;
|
||||
private boolean mInitialized = false;
|
||||
|
||||
public BluetoothService(Context context) {
|
||||
super(context);
|
||||
mBluetoothManagerService = new BluetoothManagerService(context);
|
||||
}
|
||||
|
||||
private void initialize() {
|
||||
if (!mInitialized) {
|
||||
mBluetoothManagerService.handleOnBootPhase();
|
||||
mInitialized = true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStart() {
|
||||
}
|
||||
@@ -36,13 +47,15 @@ class BluetoothService extends SystemService {
|
||||
if (phase == SystemService.PHASE_SYSTEM_SERVICES_READY) {
|
||||
publishBinderService(BluetoothAdapter.BLUETOOTH_MANAGER_SERVICE,
|
||||
mBluetoothManagerService);
|
||||
} else if (phase == SystemService.PHASE_ACTIVITY_MANAGER_READY) {
|
||||
mBluetoothManagerService.handleOnBootPhase();
|
||||
} else if (phase == SystemService.PHASE_ACTIVITY_MANAGER_READY &&
|
||||
!SystemProperties.getBoolean(HEADLESS_SYSTEM_USER, false)) {
|
||||
initialize();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSwitchUser(int userHandle) {
|
||||
initialize();
|
||||
mBluetoothManagerService.handleOnSwitchUser(userHandle);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user