Я стартер на Android и BLE и хочу написать приложение Android 4.3 для общения с платой BLE. Я прочитал простую и написал простое приложение для поиска устройства.Простое приложение для поиска поблизости, но все же появилась ошибка с mHandler.postDelayed()
я установил кнопку для запуска сканирования:
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 ..., приложение сможет успешно найти устройство. Я новичок в программе и не знаю, как отлаживать такую ошибку. Я также не знаю, почему этот runnable идет не так. Кто-нибудь мне помогает? Спасибо!
привет вы нашли свое решение? !!!! – Hardik