diff --git a/briar-android/src/org/briarproject/android/util/AndroidUtils.java b/briar-android/src/org/briarproject/android/util/AndroidUtils.java index 678c682c2d7f96a7b08885a049d29f3e1fb0772f..41599dd4ed8a24036d265a02cfb89704fe2a0798 100644 --- a/briar-android/src/org/briarproject/android/util/AndroidUtils.java +++ b/briar-android/src/org/briarproject/android/util/AndroidUtils.java @@ -57,19 +57,18 @@ public class AndroidUtils { BluetoothAdapter adapter) { // Return the adapter's address if it's valid and not fake String address = adapter.getAddress(); - if (!StringUtils.isNullOrEmpty(address) - && BluetoothAdapter.checkBluetoothAddress(address) - && !address.equals(FAKE_BLUETOOTH_ADDRESS)) { - return address; - } - // Return the address from settings if it's valid + if (isValidBluetoothAddress(address)) return address; + // Return the address from settings if it's valid and not fake address = Settings.Secure.getString(ctx.getContentResolver(), "bluetooth_address"); - if (!StringUtils.isNullOrEmpty(address) - && BluetoothAdapter.checkBluetoothAddress(address)) { - return address; - } - // As a last resort, return a fake but valid address - return FAKE_BLUETOOTH_ADDRESS; + if (isValidBluetoothAddress(address)) return address; + // Let the caller know we can't find the address + return ""; + } + + private static boolean isValidBluetoothAddress(String address) { + return !StringUtils.isNullOrEmpty(address) + && BluetoothAdapter.checkBluetoothAddress(address) + && !address.equals(FAKE_BLUETOOTH_ADDRESS); } } diff --git a/briar-android/src/org/briarproject/plugins/droidtooth/DroidtoothPlugin.java b/briar-android/src/org/briarproject/plugins/droidtooth/DroidtoothPlugin.java index 9c67f9e98e8a214c34ab568f7d39f4c91348e09a..2bd6d3d37c6077b076e7ade19af620b61fd4dc0b 100644 --- a/briar-android/src/org/briarproject/plugins/droidtooth/DroidtoothPlugin.java +++ b/briar-android/src/org/briarproject/plugins/droidtooth/DroidtoothPlugin.java @@ -157,10 +157,12 @@ class DroidtoothPlugin implements DuplexPlugin { adapter); if (LOG.isLoggable(INFO)) LOG.info("Local address " + address); - // Advertise the Bluetooth address to contacts - TransportProperties p = new TransportProperties(); - p.put("address", address); - callback.mergeLocalProperties(p); + if (!StringUtils.isNullOrEmpty(address)) { + // Advertise the Bluetooth address to contacts + TransportProperties p = new TransportProperties(); + p.put("address", address); + callback.mergeLocalProperties(p); + } // Bind a server socket to accept connections from contacts BluetoothServerSocket ss; try {