我的蓝牙应用程序有问题。在启动应用程序之前启用蓝牙时,一切正常。但是当我不这样做时,我的应用程序会要求允许通过turnOn方法启用蓝牙。但是,当我按下开启扫描按钮,我得到一个错误,指出:BluetoothLeScanner空对象引用
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.bluetooth.le.BluetoothLeScanner.startScan(android.bluetooth.le.ScanCallback)' on a null object reference
这里是我的onCreate方法:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Set layout
setContentView(R.layout.activity_main);
//Bluetooth
// BluetoothManager
final BluetoothManager BTManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
BTAdapter = BTManager.getAdapter();
// BluetoothLescanner
BTScanner = BTAdapter.getBluetoothLeScanner();
//Turn on BT
turnOn();
//Ask permission for location.
requestPermission();
}
我的疑问句是,BTScanner由前所述开启方法被调用,使得BTScanner是一个空对象。
任何关于这个问题的帮助都会很大。
亲切的问候,
Binsento
您是否在分配'BTScanner'之前尝试调用'turnOn()'? – DigitalNinja
是的,我也做过,当bluetoothadapter.isEnabled制作bluetooothlescanner时,我也试过对if语句做些什么。但两者都不起作用。 –