Is there a high-level (Java) or low-level way (using native code) to change Bluetooth signal strength on Android devices to a minimum ?
The goal is to make the device discoverable within a range of 20 centimeters ? Can't find anything at all on Internet regarding this.
You can do so using your custom BLE advertising on android, you can use below modes to set your bluet-tooth discovery range.
//Use AdvertiseSettings class
ADVERTISE_MODE_BALANCED : Perform Bluetooth LE advertising in balanced power mode.
ADVERTISE_MODE_LOW_LATENCY : Perform Bluetooth LE advertising in low latency, high power mode.
ADVERTISE_MODE_LOW_POWER : Perform Bluetooth LE advertising in low power mode.
ADVERTISE_TX_POWER_LOW : Advertise using low TX power level.
ADVERTISE_TX_POWER_ULTRA_LOW : Advertise using the lowest transmission (TX) power level.
Refer this for detail documentation