Bluetooth Low Energy not working as expected on Android -




i'm working on distributed system uses bluetooth low energy locate users in building. far, using android phones peripheral devices advertise different information in different meeting rooms.

everything seems working fine found issue samsung s5 (sm-g900m) finding our advertisements (we using scanfilters detect peripheral devices) scanrecord comes empty or null values. same code working fine on pixel , samsung s7.

this our advertisement code:

private advertisedata createfmpadvertisedata() {     advertisedata.builder builder = new advertisedata.builder();     builder.addserviceuuid(new parceluuid(uuid.fromstring("d0acdb90-745a-42a9-8e4d-9de4fb9342dc")));     return builder.build(); }  private static advertisesettings createadvsettings(boolean connectable, int timeoutmillis) {     advertisesettings.builder builder = new advertisesettings.builder();     builder.setadvertisemode(advertisesettings.advertise_mode_balanced);      // connectable true     builder.setconnectable(connectable);     builder.settimeout(timeoutmillis);     builder.settxpowerlevel(advertisesettings.advertise_tx_power_high);     return builder.build(); }   mbluetoothleadvertiser.startadvertising(                 createadvsettings(true, 0),                 createfmpadvertisedata(),                 madvertisecallback); 

this our scanning code:

public scansettings createscansettings() {         scansettings.builder builder = new scansettings.builder();         builder.setcallbacktype(scansettings.callback_type_first_match | scansettings.callback_type_match_lost);         builder.setscanmode(scansettings.scan_mode_low_latency);         builder.setmatchmode(scansettings.match_mode_aggressive);          return builder.build();     }      public void setcallbacks() {         // device scan callback.         mscancallback = new scancallback() {             @override             public void onscanresult(int callbacktype, scanresult result) {                 log.i(tag, "rssi" + result.getrssi());                 bluetoothdevice device = result.getdevice();                 log.i(tag, "device " + device.getaddress() + ", callback type: " + callbacktype);                 scanrecord record = result.getscanrecord();                 log.i(tag, "uuid data" + record.getservicedata());                 log.i(tag, "bytes" + bytearraytohex(record.getbytes()));                 uuid uuid = record.getserviceuuids().get(0).getuuid();                 log.i(tag, "uuid" + record.getserviceuuids()); 

the samsung s5 running android 6.0.1. appreciated.





wiki

Comments

Popular posts from this blog

Asterisk AGI Python Script to Dialplan does not work -

python - Read npy file directly from S3 StreamingBody -

kotlin - Out-projected type in generic interface prohibits the use of metod with generic parameter -