I found in the Android documentation how to turn Bluetooth discoverability mode on:
Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DI
Just send a new discoverable request with duration 1 (or 0 might even work):
Intent discoverableIntent = new
Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 1);
startActivity(discoverableIntent);
cancelDiscovery()
is not for this. This method can be used to stop the scanning of your device for other bluetooth devices. It is different from this to make device not visible.
Care when using this method, it might be easily changed as it is hidden.
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
try {
Method method = BluetoothAdapter.class.getMethod("setScanMode", int.class);
method.invoke(bluetoothAdapter, BluetoothAdapter.SCAN_MODE_CONNECTABLE);
} catch (NoSuchMethodException | IllegalArgumentException | IllegalAccessException | InvocationTargetException e) {
Log.e(TAG, "Failed to turn off bluetooth device discoverability.", e);
}
Also usable with SCAN_MODE_NONE
and SCAN_MODE_CONNECTABLE_DISCOVERABLE
(uses default duration)
Source