BLE连接到插座



服务BLE到套接字的连接有问题。当尝试连接时,他收到错误:

I/System.out:状态:连接失败:尝试调用虚拟方法"void"com.bart11.project.bluetooth.SerialService.connect(com.bart101.project.blueto.SerialSocket('在空对象引用上

哪里出错了?

public class MainActivity extends BaseActivity implements View.OnClickListener, ServiceConnection, SerialListener {
private List<Fragment> fragments = new ArrayList<>();
private MapsFragment mapsFragment;
private TabBarView myTabbar;
private enum Connected { False, Pending, True }
private String deviceAddress;
private SerialService service;
private Connected connected = Connected.False;
private boolean initialStart = true;
private boolean hexEnabled = false;

@Override
public void onServiceConnected(ComponentName name, IBinder binder) {
service = ((SerialService.SerialBinder) binder).getService();
service.attach(this);
if(initialStart) {
initialStart = false;
runOnUiThread((this::connect));
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
// Read BLE device.
SharedPreferences pref = getApplicationContext().getSharedPreferences("BLEPreferences", 0);
String BLEDevice = (pref.getString("device", ""));
if (BLEDevice.equals(""))
startActivity(new Intent(this, BluetoothActivity.class));
else
deviceAddress = BLEDevice;

}
@Override
protected void onStart() {
super.onStart();
if(service != null) {
service.attach(this);
} else {
bindService(new Intent(this, SerialService.class), this, Context.BIND_AUTO_CREATE);
startService(new Intent(this, SerialService.class));
connect();
}
}
private void connect() {
try {
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
BluetoothDevice device = bluetoothAdapter.getRemoteDevice(deviceAddress);
status("connecting...");
connected = Connected.Pending;
SerialSocket socket = new SerialSocket(getApplicationContext(), device);
service.connect(socket);
} catch (Exception e) {
onSerialConnectError(e);
}
}

您已经声明了serialService,但尚未为其赋值,因此为null对象引用。您应该在尝试调用serialService对象之前分配initialize

最新更新