Я сделал экран в студии android, который управляет некоторыми аспектами Bluetooth, такими как поиск устройств, включение и выключение и так далее. Проблема возникла, когда я запустил приложение, я получаю сообщение об ошибке NullPointer при переключении изображений с Bluetooth на выключение и наоборот.
Мой код (упрощенный):
private ListView listView;
private ArrayList<String> mDeviceList = new ArrayList<>();
Button mBotOn, mBotOff,mBotDescubrir, mBotEmparejar, mBotEmp;
private BluetoothAdapter mBlueAdapter;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ajustes_conexion_sensores);
listView = findViewById(R.id.listView);
mBlueAdapter = BluetoothAdapter.getDefaultAdapter();
final IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
if (mBlueAdapter == null) {
mEstadoBlueTv.setText("Bluetooth no disponible.");
} else {
mEstadoBlueTv.setText("Bluetooth está disponible.");
}
mBotDescubrir.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
registerReceiver(mReceiver, filter);
mBlueAdapter.startDiscovery();
}
});
}
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(BluetoothDevice.ACTION_FOUND.equals(action)){
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
mDeviceList.add(device.getName() + "\n" + device.getAddress());
listView.setAdapter(new ArrayAdapter<String>(context,
android.R.layout.simple_list_item_1, mDeviceList));
}
}
};
I получите исключение NullPointer здесь:
if (mBlueAdapter.isEnabled()) {
mBluetIv.setImageResource(R.drawable.bt_on);
} else {
mBluetIv.setImageResource(R.drawable.bt_off);
}
Ошибка:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean
android.bluetooth.BluetoothAdapter.isEnabled()' on a null object reference
at serenaApp.serenaapp.AjustesConexionSensores.onCreate(AjustesConexionSensores.java:62)
Спасибо заранее