UPDATE: I have tried a more direct approach (see EDIT 3, below) which yields an interesting lack of data from the beacon on the watch.
Details on non-working device. Smartwatch (Generic) listed as Bluetooth 4.0 capable MTK6572 chipset Model number EC720 (there seem to many variants) Android 4.4.2 Kernel: 3.4.67 chendalin-Z87-HD3 #1 Dec 27th 2014 Build Number: H82D.SMARTWATCH.OC4.0.20141447 Custom build version: 1419655453
I am testing the same application using the same Radius Networks Tag beacons. In this test I have the same 4 beacons within close range of my devices.
Device 1 is a Nexus 7 (2013) that i have not yet updated to Android L, it is running 4.4.4
Device 2 is a generic smart watch, running android 4.4.2 on a MTK6572. Specs list it as having bluetooth 4.0
When I run my testing application using the Android Beacon Library the Nexus reports beacons but the smartwatch does not. It seems to detect them however, I see entries in logcat such as: D/BluetoothAdapter﹕ onScanResult() - Device=E5:E0:20:CF:63:32 RSSI=-60. It seems these messages normally show up when the BeaconParser is not setup to read the correct type of beacons but in my case I am pretty sure this is not the issue because the nexus sees the beacons with the exact same code.
The log output for the looks very different for the 2 devices, I am starting to wonder if the android build for the watch somehow as BLE support disabled or has an incomplete stack. I have double checked that bluetooth is on and also wanted to note that the watch has App Permission Management which i set to "Always Allow" for all permission requested by the Application.
Here parts of logcat when from the smartwatch:
02-03 19:40:40.393 2620-2620/com.mapcushion.android.mapcushionpingl D/BeaconManager﹕ This consumer is not bound. binding: com.mapcushion.android.mapcushionpingl.Scan@41c7d2c0
02-03 19:40:40.435 2620-2620/com.mapcushion.android.mapcushionpingl D/BeaconManager﹕ consumer count is now:1
...
02-03 19:40:40.617 2620-2620/com.mapcushion.android.mapcushionpingl I/BeaconService﹕ beaconService version 2.1 is starting up
02-03 19:40:40.638 2620-2620/com.mapcushion.android.mapcushionpingl I/CycledLeScanner﹕ This is not Android 5.0. We are using old scanning APIs
02-03 19:40:40.645 2620-2620/com.mapcushion.android.mapcushionpingl D/ModelSpecificDistanceCalculator﹕ Finding best distance calculator for 4.4.2,KOT49H,EC720,alps
02-03 19:40:40.645 2620-2620/com.mapcushion.android.mapcushionpingl D/AndroidModel﹕ Score is 0 for LGE;Nexus 4;KOT49H;4.4.2 compared to alps;EC720;KOT49H;4.4.2
02-03 19:40:40.645 2620-2620/com.mapcushion.android.mapcushionpingl D/AndroidModel﹕ Score is 0 for LGE;Nexus 5;LPV79;4.4.2 compared to alps;EC720;KOT49H;4.4.2
02-03 19:40:40.645 2620-2620/com.mapcushion.android.mapcushionpingl W/ModelSpecificDistanceCalculator﹕ Cannot find match for this device. Using default
02-03 19:40:40.645 2620-2620/com.mapcushion.android.mapcushionpingl D/ModelSpecificDistanceCalculator﹕ Finding best distance calculator for 4.4.2,KOT49H,EC720,alps
02-03 19:40:40.645 2620-2620/com.mapcushion.android.mapcushionpingl D/AndroidModel﹕ Score is 0 for LGE;Nexus 4;KOT49H;4.4.2 compared to alps;EC720;KOT49H;4.4.2
02-03 19:40:40.646 2620-2620/com.mapcushion.android.mapcushionpingl D/AndroidModel﹕ Score is 0 for LGE;Nexus 5;LPV79;4.4.2 compared to alps;EC720;KOT49H;4.4.2
02-03 19:40:40.646 2620-2620/com.mapcushion.android.mapcushionpingl W/ModelSpecificDistanceCalculator﹕ Cannot find match for this device. Using default
02-03 19:40:40.648 2620-2620/com.mapcushion.android.mapcushionpingl D/BeaconService﹕ No org.altbeacon.beacon.SimulatedScanData class exists.
02-03 19:40:40.649 2620-2620/com.mapcushion.android.mapcushionpingl D/ActivityThread﹕ SVC-CREATE_SERVICE handled : 0 / CreateServiceData{token=android.os.BinderProxy@41cbbec8 className=org.altbeacon.beacon.service.BeaconService packageName=com.mapcushion.android.mapcushionpingl intent=null}
02-03 19:40:40.650 2620-2620/com.mapcushion.android.mapcushionpingl I/BeaconService﹕ binding
02-03 19:40:40.656 2620-2620/com.mapcushion.android.mapcushionpingl D/ActivityThread﹕ SVC-BIND_SERVICE handled : 0 / BindServiceData{token=android.os.BinderProxy@41cbbec8 intent=Intent { cmp=com.mapcushion.android.mapcushionpingl/org.altbeacon.beacon.service.BeaconService }}
02-03 19:40:40.723 2620-2620/com.mapcushion.android.mapcushionpingl D/GraphicBuffer﹕ create handle(0x552ed2b8) (w:256, h:240, f:1)
02-03 19:40:40.725 2620-2620/com.mapcushion.android.mapcushionpingl I/MaliEGL﹕ [Mali]surface->num_buffers=4, surface->num_frames=3, win_min_undequeued=1
02-03 19:40:40.725 2620-2620/com.mapcushion.android.mapcushionpingl I/MaliEGL﹕ [Mali]max_allowed_dequeued_buffers=3
02-03 19:40:40.725 2620-2620/com.mapcushion.android.mapcushionpingl D/GraphicBuffer﹕ close handle(0x552ed2b8) (w:256 h:240 f:1)
02-03 19:40:40.733 2620-2620/com.mapcushion.android.mapcushionpingl D/GraphicBuffer﹕ create handle(0x553ec108) (w:256, h:240, f:1)
02-03 19:40:40.735 2620-2620/com.mapcushion.android.mapcushionpingl D/OpenGLRenderer﹕ Enabling debug mode 0
02-03 19:40:40.737 2620-2620/com.mapcushion.android.mapcushionpingl D/GraphicBuffer﹕ create handle(0x5542c8a8) (w:768, h:768, f:1)
02-03 19:40:40.741 2620-2620/com.mapcushion.android.mapcushionpingl W/MALI﹕ MTK_AUX_isMTKFormat:168: int MTK_AUX_isMTKFormat(ANativeWindowBuffer_t*): format=1
02-03 19:40:40.743 2620-2620/com.mapcushion.android.mapcushionpingl D/OpenGLRenderer﹕ setViewport 240x240 <0x553ec690>
02-03 19:40:40.745 2620-2620/com.mapcushion.android.mapcushionpingl D/BeaconManager﹕ we have a connection to the service now
02-03 19:40:40.747 2620-2620/com.mapcushion.android.mapcushionpingl D/BeaconManager﹕ callback packageName: com.mapcushion.android.mapcushionpingl
02-03 19:40:40.747 2620-2620/com.mapcushion.android.mapcushionpingl D/BeaconManager﹕ This consumer is already bound
...
02-03 19:40:40.814 2620-2620/com.mapcushion.android.mapcushionpingl I/BeaconService﹕ start ranging received
02-03 19:40:40.814 2620-2620/com.mapcushion.android.mapcushionpingl D/BeaconService﹕ Currently ranging 1 regions.
02-03 19:40:40.814 2620-2620/com.mapcushion.android.mapcushionpingl D/CycledLeScanner﹕ start called
02-03 19:40:40.828 2620-2620/com.mapcushion.android.mapcushionpingl D/CycledLeScanner﹕ starting a new scan cycle
02-03 19:40:40.829 2620-2620/com.mapcushion.android.mapcushionpingl D/BluetoothAdapter﹕ isEnabled
02-03 19:40:40.834 2620-2620/com.mapcushion.android.mapcushionpingl D/CycledLeScanner﹕ starting a new bluetooth le scan
02-03 19:40:40.835 2620-2620/com.mapcushion.android.mapcushionpingl D/BluetoothAdapter﹕ startLeScan(): null
02-03 19:40:40.874 2620-2633/com.mapcushion.android.mapcushionpingl D/BluetoothAdapter﹕ onClientRegistered() - status=0 clientIf=1
02-03 19:40:40.879 2620-2620/com.mapcushion.android.mapcushionpingl D/CycledLeScanner﹕ Waiting to stop scan cycle for another 1100 milliseconds
02-03 19:40:40.880 2620-2620/com.mapcushion.android.mapcushionpingl D/CycledLeScanner﹕ Scan started
02-03 19:40:40.880 2620-2620/com.mapcushion.android.mapcushionpingl D/CycledLeScanner﹕ Set scan periods called with 1100, 0 Background mode must have changed.
02-03 19:40:40.881 2620-2620/com.mapcushion.android.mapcushionpingl D/CycledLeScanner﹕ We are not in the background. Cancelling wakeup alarm
02-03 19:40:40.881 2620-2620/com.mapcushion.android.mapcushionpingl D/CycledLeScanner﹕ cancel wakeup alarm: null
02-03 19:40:41.084 2620-2634/com.mapcushion.android.mapcushionpingl D/BluetoothAdapter﹕ onScanResult() - Device=E5:E0:20:CF:63:32 RSSI=-45
02-03 19:40:41.084 2620-2634/com.mapcushion.android.mapcushionpingl D/CycledLeScannerForJellyBeanMr2﹕ got record
Here is my code:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scan);
mHandler = new android.os.Handler();
beaconManager = BeaconManager.getInstanceForApplication(this);
beaconManager.setDebug(true);
beaconManager.getBeaconParsers().add(new BeaconParser().
setBeaconLayout(" m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"));
beaconManager.bind(this);
sendBeacons();
}
@Override
public void onBeaconServiceConnect() {
beaconManager.setRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
System.out.println("------- didRangeBeacons!!!!");
iBeacons = beacons;
System.out.println("------ num:: " + iBeacons.size());
/*
for(Beacon iBeacon : iBeacons) {
Log.i("Beacon", "found \nProxUUID: " + iBeacon.getId1()
+ "\ntx: " + Integer.toString(iBeacon.getTxPower())
+ "\nmanu: " + Integer.toString(iBeacon.getManufacturer())
+ "\ndistance: " + Double.toString(iBeacon.getDistance())
+ "\nRSSI:" + Integer.toString(iBeacon.getRssi())
+ "\nTxPow:" + Integer.toString(iBeacon.getTxPower())
+ "\nBeacon type code:" + Double.toString(iBeacon.getBeaconTypeCode())
+ "\n------------------------------------------------");
}
*/
}
});
try {
beaconManager.startRangingBeaconsInRegion(new Region("briansbeacons", null, null, null));
} catch(RemoteException e) {
e.printStackTrace();
}
beaconManager.bind(this);
}
EDIT 1:
Adding more specific log entries to try to show the differences in beacon detection: I removed all but one beacon, I noticed that the working device is identifying the beacon by UUID, the non-working is not. But i can not find any reference to the Device=E5:E0:20:CF:63:32 in the log of the working device.
Nexus 7 (working):
02-02 23:48:14.795 10727-10751/com.mapcushion.android.mapcushionpingl D/BeaconService﹕ beacon detected multiple times in scan cycle :id1: 2f234454-cf6d-4a0f-adf2-f4911ba9ffa6 id2: 4 id3: 101
02-02 23:48:14.795 10727-10751/com.mapcushion.android.mapcushionpingl D/BeaconService﹕ beacon detected :id1: 2f234454-cf6d-4a0f-adf2-f4911ba9ffa6 id2: 4 id3: 101
02-02 23:48:14.795 10727-10751/com.mapcushion.android.mapcushionpingl D/BeaconService﹕ looking for ranging region matches for this beacon
02-02 23:48:14.795 10727-10751/com.mapcushion.android.mapcushionpingl D/BeaconService﹕ matches ranging region: id1: null id2: null id3: null
02-02 23:48:14.795 10727-10751/com.mapcushion.android.mapcushionpingl D/RangeState﹕ adding id1: 2f234454-cf6d-4a0f-adf2-f4911ba9ffa6 id2: 4 id3: 101 to existing range for: org.altbeacon.beacon.service.RangedBeacon@41eb5380
02-02 23:48:14.915 10727-10738/com.mapcushion.android.mapcushionpingl D/CycledLeScannerForJellyBeanMr2﹕ got record
02-02 23:48:14.915 10727-10759/com.mapcushion.android.mapcushionpingl D/BeaconParser﹕ This is not a matching Beacon advertisement. (Was expecting be ac. The bytes I see are: 02011a0bff4c0009060102c0a801130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
02-02 23:48:14.915 10727-10759/com.mapcushion.android.mapcushionpingl D/BeaconParser﹕ This is not a matching Beacon advertisement. (Was expecting 02 15. The bytes I see are: 02011a0bff4c0009060102c0a801130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
SmartWatch (not working):
02-02 23:46:52.598 3351-3364/com.mapcushion.android.mapcushionpingl D/BluetoothAdapter﹕ onScanResult() - Device=E5:E0:20:CF:63:32 RSSI=-31
02-02 23:46:52.599 3351-3364/com.mapcushion.android.mapcushionpingl D/CycledLeScannerForJellyBeanMr2﹕ got record
02-02 23:46:52.600 3351-3364/com.mapcushion.android.mapcushionpingl D/BluetoothDevice﹕ mAddress: E5:E0:20:CF:63:32
02-02 23:46:52.603 3351-3383/com.mapcushion.android.mapcushionpingl D/BeaconParser﹕ This is not a matching Beacon advertisement. (Was expecting be ac. The bytes I see are: 0201000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
02-02 23:46:52.603 3351-3383/com.mapcushion.android.mapcushionpingl D/BeaconParser﹕ This is not a matching Beacon advertisement. (Was expecting 02 15. The bytes I see are: 0201000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
02-02 23:46:52.605 3351-3383/com.mapcushion.android.mapcushionpingl D/BeaconParser﹕ This is not a matching Beacon advertisement. (Was expecting 02 15. The bytes I see are: 0201000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
02-02 23:46:53.432 3351-3351/com.mapcushion.android.mapcushionpingl D/CycledLeScanner﹕ Waiting to stop scan cycle for another 98 milliseconds
02-02 23:46:53.531 3351-3351/com.mapcushion.android.mapcushionpingl D/CycledLeScanner﹕ Done with scan cycle
02-02 23:46:53.531 3351-3351/com.mapcushion.android.mapcushionpingl D/BeaconService﹕ Calling ranging callback
Something else I noticed is that in the non-working device the only references to BeaconService are the following:
02-02 23:46:52.364 3351-3351/com.mapcushion.android.mapcushionpingl D/BeaconService﹕ Calling ranging callback
02-02 23:46:52.364 3351-3351/com.mapcushion.android.mapcushionpingl D/Callback﹕ attempting callback via intent: ComponentInfo{com.mapcushion.android.mapcushionpingl/org.altbeacon.beacon.BeaconIntentProcessor}
Whereas in the working device most of the logging for the beacon seems to come from that class...
EDIT - Update 2:
In response to David in regards to the MAC address
The following code:
beaconManager.setRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
System.out.println("------- didRangeBeacons!!!!");
iBeacons = beacons;
System.out.println("------ num:: " + iBeacons.size());
for(Beacon iBeacon : iBeacons) {
Log.i("Beacon", "\n------------------------------------------------");
Log.d(TAG, "Mac address is: "+iBeacon.getBluetoothAddress());
Log.i("Beacon", "\n------------------------------------------------");
}
}
});
Produces on the working Nexus 7:
02-03 19:44:57.200 3192-3438/com.mapcushion.android.mapcushionpingl I/System.out﹕ ------- didRangeBeacons!!!!
02-03 19:44:57.200 3192-3438/com.mapcushion.android.mapcushionpingl I/System.out﹕ ------ num:: 1
02-03 19:44:57.200 3192-3438/com.mapcushion.android.mapcushionpingl I/Beacon﹕ ------------------------------------------------
02-03 19:44:57.200 3192-3438/com.mapcushion.android.mapcushionpingl D/RangingActivity﹕ Mac address is: E5:E0:20:CF:63:32
02-03 19:44:57.200 3192-3438/com.mapcushion.android.mapcushionpingl I/Beacon﹕ ------------------------------------------------
And on the smartwatch:
02-03 19:40:46.671 2620-2671/com.mapcushion.android.mapcushionpingl I/System.out﹕ ------- didRangeBeacons!!!!
02-03 19:40:46.671 2620-2671/com.mapcushion.android.mapcushionpingl I/System.out﹕ ------ num:: 0
So there are no ble devices being "seen" by the BeaconManager (or underlying android APIs) as beacons, but yet it does identify the beacon with same MAC address with this line:
02-03 19:40:46.486 2620-2633/com.mapcushion.android.mapcushionpingl D/BluetoothDevice﹕ mAddress: E5:E0:20:CF:63:32
EDIT 3:
I decided to step back and try using the android Bluetooth APIs to query the beacons directly.
Basically I am just trying to output the bytes returned and see why the beacon is not being recognized. And the output looks completely different for the same beacon, only the 1st two bytes have data for the beacon as seen by the smartwatch, while the nexus 7 has 30 bytes of data.
I tried changing the SCAN_TIME with no effect so far. Is the lack of data received by the watch a sign that it cannot read ble packets?
I used the following code:
private static final long SCAN_TIME = 5000;
boolean mScanning = false;
private void scanLeDevice(final boolean enable) {
Log.i(null, "Inside scanLeDevice");
Log.i(null, "scan time is: " + SCAN_TIME);
if (enable) {
// Stops scanning after a pre-defined scan period.
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
mScanning = false;
Log.i(null, "Calling stopLeScan");
mBluetoothAdapter.stopLeScan(mLeScanCallback);
}
}, SCAN_TIME);
mScanning = true;
Log.i(null, "Calling startLeScan");
mBluetoothAdapter.startLeScan(mLeScanCallback);
} else {
mScanning = false;
mBluetoothAdapter.stopLeScan(mLeScanCallback);
}
}
private BluetoothAdapter.LeScanCallback mLeScanCallback =
new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(final BluetoothDevice device, int rssi,
final byte[] scanRecord) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Log.i(null, "INSIDE ONLESCAN");
//DO MY WORK
Log.i(null, "scanned record: " + scanRecord.length);
int startByte = 2;
boolean patternFound = false;
for(int i=0; i<scanRecord.length; i++) {
Log.i(null, "byte " + i + ": " + scanRecord[i]);
}
while (startByte <= 5) {
Log.i(null, "scanned record: " + scanRecord.length);
Log.i(null, "Identifier check: " + ((int) scanRecord[startByte + 2] & 0xff) + " == " + 0x02);
Log.i(null, "Length of data : " + ((int) scanRecord[startByte + 3] & 0xff) + "==" + (0x15));
//Log.i(null, " iBeacon Identifier: " + (scanRecord[startByte + 2] & 0xff));
if (((int) scanRecord[startByte + 2] & 0xff) == 0x02 && //Identifies an iBeacon
((int) scanRecord[startByte + 3] & 0xff) == 0x15) { //Identifies correct data length
patternFound = true;
break;
}
startByte++;
}
if (patternFound) {
//Convert to hex String
byte[] uuidBytes = new byte[16];
System.arraycopy(scanRecord, startByte+4, uuidBytes, 0, 16);
String hexString = bytesToHex(uuidBytes);
//Here is your UUID
String uuid = hexString.substring(0,8) + "-" +
hexString.substring(8,12) + "-" +
hexString.substring(12,16) + "-" +
hexString.substring(16,20) + "-" +
hexString.substring(20,32);
//Here is your Major value
int major = (scanRecord[startByte+20] & 0xff) * 0x100 + (scanRecord[startByte+21] & 0xff);
//Here is your Minor value
int minor = (scanRecord[startByte+22] & 0xff) * 0x100 + (scanRecord[startByte+23] & 0xff);
System.out.println("-------------output------ : " + uuid + " maj: " + major + " min: " + minor );
}
}
});
}
};
}
Here is the output:
nexus 7 (working):
02-03 22:50:43.811 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ INSIDE ONLESCAN
02-03 22:50:43.811 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ scanned record: 62
02-03 22:50:43.811 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 0: 2
02-03 22:50:43.811 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 1: 1
02-03 22:50:43.811 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 2: 6
02-03 22:50:43.811 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 3: 26
02-03 22:50:43.811 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 4: -1
02-03 22:50:43.811 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 5: 76
02-03 22:50:43.811 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 6: 0
02-03 22:50:43.821 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 7: 2
02-03 22:50:43.821 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 8: 21
02-03 22:50:43.831 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 9: 47
02-03 22:50:43.831 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 10: 35
02-03 22:50:43.831 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 11: 68
02-03 22:50:43.831 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 12: 84
02-03 22:50:43.831 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 13: -49
02-03 22:50:43.831 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 14: 109
02-03 22:50:43.831 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 15: 74
02-03 22:50:43.831 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 16: 15
02-03 22:50:43.841 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 17: -83
02-03 22:50:43.841 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 18: -14
02-03 22:50:43.841 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 19: -12
02-03 22:50:43.841 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 20: -111
02-03 22:50:43.841 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 21: 27
02-03 22:50:43.841 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 22: -87
02-03 22:50:43.841 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 23: -1
02-03 22:50:43.851 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 24: -90
02-03 22:50:43.851 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 25: 0
02-03 22:50:43.851 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 26: 4
02-03 22:50:43.851 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 27: 0
02-03 22:50:43.851 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 28: 101
02-03 22:50:43.851 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 29: -76
02-03 22:50:43.851 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 30: 0
... (all 0's)
02-03 22:50:43.882 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ byte 61: 0
02-03 22:50:43.882 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ scanned record: 62
02-03 22:50:43.882 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ Identifier check: 255 == 2
02-03 22:50:43.882 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ Length of data : 76==21
02-03 22:50:43.882 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ scanned record: 62
02-03 22:50:43.882 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ Identifier check: 76 == 2
02-03 22:50:43.882 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ Length of data : 0==21
02-03 22:50:43.882 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ scanned record: 62
02-03 22:50:43.882 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ Identifier check: 0 == 2
02-03 22:50:43.882 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ Length of data : 2==21
02-03 22:50:43.882 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ scanned record: 62
02-03 22:50:43.882 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ Identifier check: 2 == 2
02-03 22:50:43.882 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ Length of data : 21==21
02-03 22:50:43.882 7303-7303/com.mapcushion.android.mapcushionpingl I/System.out﹕ -------------output------ : 2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6 maj: 4 min: 101
02-03 22:50:43.912 7303-7303/com.mapcushion.android.mapcushionpingl I/﹕ Calling stopLeScan
smartwatch (not working) :
2-03 22:53:37.374 6177-6189/com.mapcushion.android.mapcushionpingl D/BluetoothAdapter﹕ onScanResult() - Device=E5:E0:20:CF:63:32 RSSI=-46
02-03 22:53:37.376 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ INSIDE ONLESCAN
02-03 22:53:37.376 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ scanned record: 62
02-03 22:53:37.376 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ byte 0: 2
02-03 22:53:37.376 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ byte 1: 1
02-03 22:53:37.376 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ byte 2: 0
02-03 22:53:37.376 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ byte 3: 0
02-03 22:53:37.376 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ byte 4: 0
02-03 22:53:37.376 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ byte 5: 0
02-03 22:53:37.376 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ byte 6: 0
... (all 0's)
02-03 22:53:37.378 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ byte 61: 0
02-03 22:53:37.378 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ scanned record: 62
02-03 22:53:37.378 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ Identifier check: 0 == 2
02-03 22:53:37.378 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ Length of data : 0==21
02-03 22:53:37.378 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ scanned record: 62
02-03 22:53:37.378 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ Identifier check: 0 == 2
02-03 22:53:37.378 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ Length of data : 0==21
02-03 22:53:37.378 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ scanned record: 62
02-03 22:53:37.378 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ Identifier check: 0 == 2
02-03 22:53:37.378 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ Length of data : 0==21
02-03 22:53:37.378 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ scanned record: 62
02-03 22:53:37.378 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ Identifier check: 0 == 2
02-03 22:53:37.378 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ Length of data : 0==21
02-03 22:53:37.643 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ Calling stopLeScan
02-03 22:53:37.643 6177-6177/com.mapcushion.android.mapcushionpingl D/BluetoothAdapter﹕ stopLeScan()
02-03 22:53:37.743 6177-6177/com.mapcushion.android.mapcushionpingl I/﹕ Calling stopLeScan
02-03 22:53:37.743 6177-6177/com.mapcushion.android.mapcushionpingl D/BluetoothAdapter﹕ stopLeScan()
D/BluetoothDevice﹕ mAddress: F8:88:89:A1:E1:30
on the phone followed by a successful detection, and then find the lines following the equivalent detection on the watch. In both cases, it is important for the mAddress address to match. – davidgyoungLog.d(TAG, "Mac address is: "+beacon.getBluetoothAddress());
– davidgyoung