Передача данных Android Arduino по Bluetooth

187
11 апреля 2019, 23:50

Мне необходимо только передать пару строк на ардуино, ничего от нее получать не надо. Но проблема в том, как только я пытаюсь записать данные мне прилетает вот такое.

java.lang.NullPointerException: Attempt to invoke virtual method 'void java.io.OutputStream.write(byte[], int, int)' on a null object reference

Собственно вот код, я впервые работаю с kotlin и android.

class Validation : AppCompatActivity() {
var mmOutputStream: OutputStream? = null
var mmSocket: BluetoothSocket? = null
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_validation)

    resolve_Btn.setOnClickListener {bluetoothAdd() }

}
@SuppressLint("HardwareIds")
private fun bluetoothAdd() {
    val mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter()
    if (mBluetoothAdapter == null) {
        // Device does not support Bluetooth
        Log.e("Bluetooth ", "not found")
    }
    if (mBluetoothAdapter!!.isEnabled) {
        val pairedDevices = mBluetoothAdapter.bondedDevices
        // If there are paired devices
        if (pairedDevices.size > 0) {
            // Loop through paired devices
            for (device in pairedDevices) {
                mmSocket= device.createRfcommSocketToServiceRecord( UUID.fromString("00000000-0000-1000-8000-00805F9B34FB"))
                mmOutputStream = mmSocket!!.outputStream
                val message = "aaa"
                val msgBuffer = message.toByteArray(Charset.defaultCharset())
                mmOutputStream!!.write(msgBuffer)
                Log.e("Mac Addressess", "are:  " + mBluetoothAdapter.getRemoteDevice(device.address))
            }
        }
    }
}
}
Answer 1

Найдено решение. Забыл открыть сокет.

 mmSocket= device.createRfcommSocketToServiceRecord( 
                UUID.fromString("00000000-0000-1000-8000-00805F9B34FB"))
                mmSocket.connect()
                mmOutputStream = mmSocket!!.outputStream
                val message = "aaa"
                val msgBuffer = message.toByteArray(Charset.defaultCharset())
                mmOutputStream!!.write(msgBuffer)
READ ALSO
Вопрос новичка по Canvas в Android Studio

Вопрос новичка по Canvas в Android Studio

Ребятки, помогите, пожалуйста, новичку по Android

206
Spring boot не производит автонастройку бинов

Spring boot не производит автонастройку бинов

НЕ получается запустить проект на spring boot ругается что нету многих бинов

299
Как поменять int на char?

Как поменять int на char?

Есть значения int от 1 до 8Я хочу, что бы в соответствии со значением выводился символ char от a до h

276
Проблема с FirebaseRecyclerAdapter, on a null object reference

Проблема с FirebaseRecyclerAdapter, on a null object reference

Отображение из БД Firebase работает нормально, но когда пытаюсь удалить элемент из базы приложение вылетает, хотя удаление происходитПишет on a null object...

193