我是Android和BLE的首发,并希望编写Android 4.3应用程序与BLE板通信。我阅读了简单的内容并编写了一个简单的应用程序来搜索设备。
我设置了一个开始扫描的按钮:
scanButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (D) Log.d(TAG, "+++ USER wanna scan +++");
Toast.makeText(MainActivity.this, "start scanning", Toast.LENGTH_LONG).show();
// TODO Auto-generated method stub
scanLeDevice(true);
}
});
然后scanLeDevice方法如下:
private void scanLeDevice(final boolean enable) {
if (D) Log.d(TAG, "+++ scan device +++");
if (enable) {
// Stops scanning after a pre-defined scan period.
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
mScanning = false;
mBluetoothAdapter.stopLeScan(mLeScanCallback);
invalidateOptionsMenu();
}
}, SCAN_PERIOD);
mScanning = true;
mBluetoothAdapter.startLeScan(mLeScanCallback);
} else {
mScanning = false;
mBluetoothAdapter.stopLeScan(mLeScanCallback);
}
}
该应用程序因NullPointerException而崩溃。如果我注释掉mHandler.postDelayed ... out,该应用程序可以成功找到ble设备。我是程序新手,不知道如何调试这样的错误。我也不知道为什么这个可运行的出错了。有人帮帮我吗?非常感谢!
答案 0 :(得分:0)
您可能忘记初始化您的处理程序(例如在您的onCreate()方法中):
mHandler = new Handler();