From fca9d63635d9603c318a089397b23c17682453e3 Mon Sep 17 00:00:00 2001 From: Matthew Xie Date: Thu, 4 Oct 2012 12:25:28 -0700 Subject: Add multi user support for bluetooth Create a BLUETOOTH_STACK permission to share between all users of Bluetooth apk. Bluetooth Manager binds to apk of current user bug 6925422 Change-Id: I2df5546e977c2d77bc66d97d12479d933826922a --- core/res/AndroidManifest.xml | 7 +++++++ data/etc/platform.xml | 5 +++++ services/java/com/android/server/BluetoothManagerService.java | 5 +++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index c794c51..aa67ec2 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -620,6 +620,13 @@ android:description="@string/permdesc_bluetoothAdmin" android:label="@string/permlab_bluetoothAdmin" /> + + + + + + + @@ -176,6 +180,7 @@ + diff --git a/services/java/com/android/server/BluetoothManagerService.java b/services/java/com/android/server/BluetoothManagerService.java index ce75e35..e7cd279 100755 --- a/services/java/com/android/server/BluetoothManagerService.java +++ b/services/java/com/android/server/BluetoothManagerService.java @@ -481,7 +481,7 @@ class BluetoothManagerService extends IBluetoothManager.Stub { mHandler.sendMessageDelayed(timeoutMsg,TIMEOUT_BIND_MS); Intent i = new Intent(IBluetooth.class.getName()); if (!mContext.bindService(i, mConnection, - Context.BIND_AUTO_CREATE)) { + Context.BIND_AUTO_CREATE, UserHandle.USER_CURRENT)) { mHandler.removeMessages(MESSAGE_TIMEOUT_BIND); Log.e(TAG, "fail to bind to: " + IBluetooth.class.getName()); } @@ -717,7 +717,8 @@ class BluetoothManagerService extends IBluetoothManager.Stub { mHandler.sendMessageDelayed(timeoutMsg,TIMEOUT_BIND_MS); mConnection.setGetNameAddressOnly(false); Intent i = new Intent(IBluetooth.class.getName()); - if (!mContext.bindService(i, mConnection,Context.BIND_AUTO_CREATE)) { + if (!mContext.bindService(i, mConnection, Context.BIND_AUTO_CREATE, + UserHandle.USER_CURRENT)) { mHandler.removeMessages(MESSAGE_TIMEOUT_BIND); Log.e(TAG, "Fail to bind to: " + IBluetooth.class.getName()); } -- cgit v1.1