The bindService() and startService() calls have always had
undefined behavior when used with an implicit Intent and there
are multiple matching services. Because of this, it is not
safe for applications to use such Intents when interacting with
services, yet the platform would merrily go about doing... something.
In KLP I want to cause this case to be invalid, resulting in
an exception thrown back to the app. Unfortunately there are
lots of (scary) things relying on this behavior, so we can't
immediately turn it into an exception, even one qualified by the
caller's target SDK version.
In this change, we start loggin a WTF when such a call happens,
and clean up some stuff in Bluetooth that was doing this behavior.
Change-Id: I62e25d07890588d2362104e20b054aebb6c0e007
implement error recovery when bluetooth stack return error with error
transition state from TURNING_ON to OFF due to ENABLE_TIMEOUT.
issue 7566317
Change-Id: I709b475bbfbd90e4f6e423f9eedc5340c89b2cb0
This introduces four generic thread that services can
use in the system process:
- Background: part of the framework for all processes, for
work that is purely background (no timing constraint).
- UI: for time-critical display of UI.
- Foreground: normal foreground work.
- IO: performing IO operations.
I went through and moved services into these threads in the
places I felt relatively comfortable about understanding what
they are doing. There are still a bunch more we need to look
at -- lots of networking stuff left, 3 or so different native
daemon connectors which I didn't know how much would block,
audio stuff, etc.
Also updated Watchdog to be aware of and check these new
threads, with a new API for other threads to also participate
in this checking.
Change-Id: Ie2f11061cebde5f018d7383b3a910fbbd11d5e11
Updated API headers. Add BluetoothManager to be retrieved by
context.getSystemService(Context.BLUETOOTH_SERVICE).
LE scan functions are placed in BluetoothAdapter
The GATT API are device driven instead of a profile-driver.
bug 8450158
Change-Id: I424a4cedaac3ef8120a05996500008dd210d2553
Allows the external BT stack the means to communicate with
ConnectivityService during reverse tethering.
bug:8445208
Change-Id: Ice7dfb0b50c9481d359aed14a51372878185171c
The NFC process used to be only running as user 0,
and it may be calling into Bluetooth. Most of the
handover code has now moved to a separate process
running as the current user.
Fix the existing checks to take into account the
correct NFC UID, whatever user it is running as.
Bug: 7309141
Change-Id: I953cfb263a28aef7fe1be5880b053425dc359a29
The root cause is we can't unbind blue service when bluetooth isnot disbaled
Otherwise the bluedroid stack will be out of sync with bluetooth service
only unbind bluetoothservice, when bluetooth is at OFF state.
bug 7376846
Change-Id: If5a11926f77a1ac29e75cdddbf5e90d492179f43
the root cause is the A2dp and Pbap service need receive STATE_TURNING_OFF intent
to shutdown cleanly. So we need send completely state transition intents
in user switch handler.
bug7403171
Change-Id: Ic92bc85c2b74ae7c95440b237ea8851771ee9f04
There are two problem, 1.If we have wrong bluetooth address in
global settings db, we never will update it 2. We need enable bluetooth
to get the bluetooth address for some devices. For 1, we fix it by add
a valid flag in global setting db, this flag will be set when we stored
correct address and name to db. We only load the name and address from
global setting db when this valid flag is set during power up.
For2. we will read BT address after bluetooth is at ON state.
bug 7440409
Change-Id: Ic4740b3f0b2fcd214c7ca8393f7331c140eec66d
During start up, binding could take a while. When binding timeout
only reset mBinding but not mEnable.
bug 7328147
Change-Id: I306a84ca53d9e1d05111395642626e68d19e9663
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
Fixed one setting that was migrated but not marked deprecated.
Removed a hidden setting that is no longer used by the new
power manager service.
Bug: 7231172
Change-Id: I332f020f876a18d519a1a20598a172f1c98036f7
Quick Settings and global actions (aka longpress-Power) toggles are
included in this CL. The Settings app manipulations are updated in
a different CL because that's a different git package.
Bug 7132230
Change-Id: I50838f5e8d7b25a750d2bcae90bf384b09816dbb
When bluetooth process gets crashed/killed/stopped by Android
system, BluetoothManagerService will re-start AdapterService
to recover from the crash appropriately.
Change-Id: Iacb1a06a8245089517bbbd57de1378ca8ce4b41e
You can now use ALL and CURRENT when sending broadcasts, to specify
where the broadcast goes.
Sticky broadcasts are now correctly separated per user, and registered
receivers are filtered based on the requested target user.
New Context APIs for more kinds of sending broadcasts as users.
Updating a bunch of system code that sends broadcasts to explicitly
specify which user the broadcast goes to.
Made a single version of the code for interpreting the requested
target user ID that all entries to activity manager (start activity,
send broadcast, start service) use.
Change-Id: Ie29f02dd5242ef8c8fa56c54593a315cd2574e1c
Handle airplane mode messages in BroadcastReceiver
Safe-lock the access of mBluetooth as a indication of binding state
break indent
Change-Id: Ib24ba0b1f5102c80e55e44b40a8dbf88bc2fad2e
BT enable()/disable() are handled by using the binder interface
Change-Id: I0bb8d4984129706e424320241ca3ea7e12caf0d3
Conflicts:
core/java/android/bluetooth/IBluetooth.aidl
This is to resolve Buganizer issue 6325950 and make the behaviour of
Blueooth and Wifi consistant.
Change-Id: Idd6cfa79136f7847e9e670d6d2aa0bf613b0381f