我正在尝试使用BluetoothLeScanner开发一个信标定位器,但问题是从来没有调用过ScanCallBack,确切地说,既没有调用onScanResult、onScanFailed,也没有调用onBatchScanResults。我有灯塔发射器位于我附近,这是由信标定位应用程序检测到在游戏商店。我不确定我是不是错过了什么。下面是我正在使用的代码。
首先,我在清单中添加了以下权限:
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>创建BluetoothLeScanner对象的代码:
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
getApplicationContext().startActivity(enableBtIntent);
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
mBluetoothLeScanner = mBluetoothAdapter.getBluetoothLeScanner();
mBluetoothLeScanner.startScan(mScanCallback);ScanCallBack:
protected ScanCallback mScanCallback = new ScanCallback() {
@Override
public void onScanResult(int callbackType, ScanResult result) {
ScanRecord mScanRecord = result.getScanRecord();
byte[] manufacturerData = mScanRecord.getManufacturerSpecificData(224);
int mRssi = result.getRssi();
}
@Override
public void onScanFailed(int errorCode){
Toast.makeText(getApplicationContext(), "Failed", Toast.LENGTH_LONG);
}
};我还确保没有一个对象值是空的,它们都是完全初始化的。此外,使用API 24在多个设备上进行测试,所以我认为这也不是一个问题。感谢你的帮助。
谢谢
发布于 2017-10-30 16:44:09
在进行了相当深入的研究之后,我发现灯塔定位器的最佳解决方案是使用Alt信标。关于如何使用库的各种教程可以在网上找到。我建议他们的官方网站将是最好的参考:https://altbeacon.github.io/android-beacon-library/samples.html,如果有人对我的代码感兴趣,用于实现信标定位器,请评论下面,我将非常高兴地与您分享。
https://stackoverflow.com/questions/46570854
复制相似问题