android 蓝牙beacon,bluetooth - Android Beacon Library for EddyStone beacons - Stack Overflow

I am new to scanning beacons using Android. I am using Library mentioned above, which is easy enough to understand. The reference application works and detects my Eddystone beacons. Based on the sample code, I wrote a simple app to detect Eddystone beacons. It does not work.

On the logcat, I get the following messages;

D/BluetoothAdapter: STATE_ON

D/BluetoothLeScanner: could not find callback wrapper

Here is my code, can anyone tell, what am I doing wrong.

Please Help.

public class MainActivity extends AppCompatActivity implements BeaconConsumer {

private BeaconManager beaconManager;

Identifier myBeaconNamespaceId;

Identifier myBeaconInstanceId;

Region region;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

myBeaconNamespaceId = Identifier.parse("0x334652820242ac130002");

myBeaconInstanceId = Identifier.parse("0x987654321cba");

beaconManager = BeaconManager.getInstanceForApplication(this.getApplicationContext());

beaconManager.getBeaconParsers().clear();

beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout(BeaconParser.EDDYSTONE_UID_LAYOUT));

// beaconManager.setDebug(true);

region = new Region("MyRegion",

myBeaconNamespaceId, myBeaconInstanceId, null);

beaconManager.bind(this);

}

@Override

protected void onDestroy() {

super.onDestroy();

beaconManager.unbind(this);

}

@Override

public void onBeaconServiceConnect() {

beaconManager.removeAllRangeNotifiers();

beaconManager.addRangeNotifier(new RangeNotifier() {

@Override

public void didRangeBeaconsInRegion(Collection beacons, Region region) {

if (beacons.size() > 0) {

Log.i("INFORMATION", "The first beacon I see is about "+beacons.iterator().next().getDistance()+" meters away.");

}

}

});

try {

beaconManager.startRangingBeaconsInRegion(new Region("MyRegion", myBeaconNamespaceId, myBeaconInstanceId, null));

} catch (RemoteException e) {

Toast.makeText(getApplicationContext(), e.getMessage() ,Toast.LENGTH_LONG).show();

}

}

private void logToDisplay(final String line) {

runOnUiThread(new Runnable() {

public void run() {

EditText editText = (EditText)MainActivity.this.findViewById(R.id.rangingText);

editText.append(line+"\n");

}

});

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值