DESCRIPTION]
只有在蓝牙菜单显示的情况下,测试机才可以被其他蓝牙设备搜索到。这是Android L的默认设计。通过快捷方式打开蓝牙后,测试机即可被已经配对过的设备连接,如可穿戴设备的同步、接收文件,被车载蓝牙连接等。
只有进入蓝牙菜单才可以被搜索到的设计还有省电的功能,在蓝牙打开后一直处于可搜索的状态会导致电量的浪费。现在可穿戴设备越来越多,拥有这种可穿戴设备的人很可能一直都会保持蓝牙打开状态,这样会缩短手机续航时间。
如果执意需要在开启蓝牙后(无论任何方式)立刻开启蓝牙可见模式,可参考下面解法:
[SOLUTION]
在BluetoothControllerImpl.java中:
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
final BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
Log.d(TAG, "onReceive action=" + action);
if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
setAdapterState(intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, ERROR));
updateBondedDevices();
Log.d(TAG, "ACTION_STATE_CHANGED " + mEnabled);
//make bt discoverable immediately after bluetooth enabled. BEGIN
if (mEnabled){
Log.d(TAG, "make bt discoverable immediately after bluetooth enabled");
mAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE);
}
//END
} else if (action.equals(BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED)) {