我正在android中开发一个应用程序,我希望它能找到并列出ble设备。
这里没有太多的话题,我也不明白。我试着用
startLeScan(BluetoothAdapter.LeScanCallback callback);
但是eclipse说lescancallback不能被解决或者不是一个字段(我对bluetoothmanager和ledevicelistadapter也有同样的问题)。我拥有所有的bt权限,导入了bluetoothgatt,bluetoothgattcallback,并将samsung sdk jar文件放在正确的位置。我错过了什么?
我在android开发者页面上使用了这个代码建议(只是我代码的一部分),但是我无法让它工作:
public class DeviceScanActivity extends ListActivity {
// Stops scanning after 10 seconds.
private static final long SCAN_PERIOD = 10000;
public boolean scanning;
public BluetoothAdapter aBTAdapter;
public Handler aHandler;
//------------------------------------------------
private void scanLeDevice(final boolean enable) {
if (enable) {
// Stops scanning after a pre-defined scan period.
aHandler.postDelayed(new Runnable() {
@Override
public void run() {
scanning = false;
aBTAdapter.stopLeScan(mLeScanCallback);
}
}, SCAN_PERIOD);
scanning = true;
aBTAdapter.startLeScan(mLeScanCallback);
} else {
scanning = false;
aBTAdapter.stopLeScan(mLeScanCallback);
}
};
//------------------------------------------
}
我要做什么才能让eclipse识别bluetoothmanager、ledevicelistadapter和lescancallback?
如何引入mlescancallback变量?
任何帮助都将不胜感激!我对编程有点陌生,所以请给我一些教学方面的答案。
编辑:
我已尝试此代码声明回调,但它不起作用,并给出了与上述相同的错误(bluetoothadapter.lescancallback无法解析或不是字段):
private LeDeviceListAdapter mLeDeviceListAdapter;
// Device scan callback.
private BluetoothAdapter.LeScanCallback mLeScanCallback =
new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(final BluetoothDevice device, int rssi,
byte[] scanRecord) {
runOnUiThread(new Runnable() {
@Override
public void run() {
mLeDeviceListAdapter.addDevice(device);
mLeDeviceListAdapter.notifyDataSetChanged();
}
});
}
};
另外,错误-->无法运行-->无日志
最佳答案
蓝牙sig为ble提供了一个应用程序加速工具包,其中包括完整的android工作代码。很好的入门资源,免费下载https://developer.bluetooth.org/Pages/Bluetooth-Smart-Developers.aspx