Я всю ночь искал эту проблему, так как это мой первый раз, когда я использую arduino и android. Мой вопрос в том, как я могу преобразовать переменную data
* String to int? Я получаю NumberFormatException всякий раз, когда я делаю: int pulse = Integer.ParseInt(data);
Преобразование строки из массива байтов в int
Моя цель здесь, чтобы быть в состоянии получить данные, поступающие из Arduino и иметь его как целое число, для меня, чтобы иметь возможность сравнить его.
ДОПОЛНИТЕЛЬНО: Переменные «данные» - это частота пульса. Мне нужно преобразовать его в int, чтобы я мог сравнить значение, если частота пульса по-прежнему нормальная или нет. После нескольких часов поиска я узнал, что то, что я пытаюсь преобразовать в int, не является чисто строкой, поскольку оно появилось из arduino, теперь моя проблема заключается в том, как сделать переменную «данные» целой.
Это мой код:
public void run()
{
while(!Thread.currentThread().isInterrupted() && !stopWorker)
{
try
{
final int bytesAvailable = mmInputStream.available();
if(bytesAvailable > 0)
{
byte[] packetBytes = new byte[bytesAvailable];
mmInputStream.read(packetBytes);
for(i=0;i<bytesAvailable;i++)
{
byte b = packetBytes[i];
if(b == delimiter)
{
final byte[] encodedBytes = new byte[readBufferPosition];
System.arraycopy(readBuffer, 0, encodedBytes, 0, encodedBytes.length);
final String data = new String(encodedBytes, "US-ASCII");
readBufferPosition = 0;
handler.post(new Runnable()
{
public void run()
{
Intent i = new Intent(Bluetooth.this, Home.class);
i.putExtra("theBPM",data);
startActivity(i);
}
});
}
else
{
readBuffer[readBufferPosition++] = b;
}
}
}
}
catch (IOException ex)
{
stopWorker = true;
}
}
}
});
workerThread.start();
Спасибо.
Ну, если вы запустили 'parseInt' на String и получили это исключение, то ваш' String' не является чисто числом. Итак, как вы можете преобразовать его в числовое представление? – Kon
Какая у вас строка? – JClassic
Проблема заключается в ваших входных данных, это не представление int, – Zielu