I have seen this problem on a Nexus 4 and Nexus 5. Bluetooth is switched on unexpectedly. It can be turned off, but will come back a minute or so later.
Googling around, it seems that this could be due to a misbehaving app, but there doesn't seem to be a good solution for finding out which app.
Is there a way to find out what is responsible for reactivating Bluetooth all the time?
If it is of any use, I captured some of the adb output after disabling Bluetooth.
When disabling:
D/BluetoothManagerService( 578): disable(): mBluetooth = android.bluetooth.IBluetooth$Stub$Proxy@42d29fa0 mBinding = false
D/BluetoothManagerService( 578): Message: 2
D/BluetoothManagerService( 578): Sending off request.
D/BluetoothAdapterState(23958): CURRENT_STATE=ON, MESSAGE = USER_TURN_OFF
D/BluetoothAdapterProperties(23958): Setting state to 13
I/BluetoothAdapterState(23958): Bluetooth adapter state changed: 12-> 13
D/BluetoothAdapterService(23958): Broadcasting updateAdapterState() to 1 receivers.
D/BluetoothAdapterProperties(23958): onBluetoothDisable()
I/BluetoothAdapterState(23958): Entering PendingCommandState State: isTurningOn()=false, isTurningOff()=true
D/BluetoothManagerService( 578): Message: 60
D/BluetoothManagerService( 578): MESSAGE_BLUETOOTH_STATE_CHANGE: prevState = 12, newState=13
D/BluetoothManagerService( 578): Bluetooth State Change Intent: 12 -> 13
D/BluetoothMapService(23958): onReceive
D/BluetoothMapService(23958): STATE_TURNING_OFF
D/BluetoothMapService(23958): MAP Service closeService in
I/BtOppRfcommListener(23958): stopping Accept Thread
I/CompanionService(13584): bluetoothStateChangeReceiver action = android.bluetooth.adapter.action.STATE_CHANGED
D/CachedBluetoothDevice(14368): Clearing all connection state for dev:Bose SoundLink Wireless Mobile speaker
D/CachedBluetoothDevice(14368): Clearing all connection state for dev:ANDY
D/CachedBluetoothDevice(14368): Clearing all connection state for dev:obd2ecu
D/CachedBluetoothDevice(14368): Clearing all connection state for dev:Glass 6014
D/CachedBluetoothDevice(14368): Clearing all connection state for dev:P311
D/CachedBluetoothDevice(14368): Clearing all connection state for dev:Logitech MX5000 Keyboard
W/ContextImpl(14368): Calling a method in the system process without a qualified user: android.app.ContextImpl.startService:1487 android.content.ContextWrapper.startService:494 android.content.ContextWrapper.startService:494 com.android.set
tings.bluetooth.DockEventReceiver.beginStartingService:134 com.android.settings.bluetooth.DockEventReceiver.onReceive:115
D/DockEventReceiver(14368): finishStartingService: stopping service
D/BluetoothPbap(14368): Proxy object disconnected
D/PbapServerProfile(14368): Bluetooth service disconnected
W/BluetoothAdapterState(23958): Timeout will setting scan mode..Continuing with disable...
D/BluetoothAdapterState(23958): CURRENT_STATE=PENDING, MESSAGE = BEGIN_DISABLE, isTurningOn=false, isTurningOff=true
E/bt-btif (23958): btif_disable_bluetooth : not yet enabled
Then, moments later:
D/BluetoothAdapterState(23958): CURRENT_STATE=PENDING, MESSAGE = DISABLE_TIMEOUT, isTurningOn=false, isTurningOff=true
E/BluetoothAdapterState(23958): Error disabling Bluetooth
D/BluetoothAdapterProperties(23958): Setting state to 12
I/BluetoothAdapterState(23958): Bluetooth adapter state changed: 13-> 12
D/BluetoothAdapterService(23958): Broadcasting updateAdapterState() to 1 receivers.
D/BluetoothManagerService( 578): Message: 60
D/BluetoothManagerService( 578): MESSAGE_BLUETOOTH_STATE_CHANGE: prevState = 13, newState=12
D/BluetoothManagerService( 578): Broadcasting onBluetoothStateChange(true) to 13 receivers.
D/BluetoothPan( 578): onBluetoothStateChange(on) call bindService
I/BluetoothAdapterState(23958): Entering On State
adb shell dumpsys meminfo
.. It may as well be a package you installed on yourphones which could be the culprit. FYI - I performed the same tests on my Nexus 5 - rooted phone with stock ROM. and all is working for me.. however I find this log line interesting where the state change from 13 -> 10 when I stopped the Bluetooth service...D/BluetoothManagerService( 1683): Bluetooth State Change Intent: 13 -> 10