Properly read/convert received bluetooth data from Android device

I have an Android device sending data to an Arduino HCO5 bluetooth module, my Android code is as(truncated):

OutputStream.write(bytes.getBytes()); //bytes here is a string

The Android documentation says "write()" receives "byte" format. Now when I receive this data on the serial monitor, for string "H" sent I get "0 128 248", for string "1" I get "120 128", etc.
I'm not really sure what this is however I assumed it was the parts of a byte array so I wrote this code to stuff them in an array:

int position = 0;
byte bigVal[] = {0};
byte val;

while (Serial.available() > 0) {  
    val = Serial.read();
    bigVal[position] = val;
    position++;
 }

Afterwards I tried converting back to a string using "String myString = String(myByteArray)" with no luck. How do I convert back to appropriate string/char please?

It would be helpful if you post the entire code

byte bigVal[] = {0};

Fix this before proceeding. It declares an array that can hold one byte. Later in the code you do

    val = Serial.read();
    bigVal[position] = val;
    position++;

Which writes to memory beyond the array

Re UKHeliBob, I'm coming from a javascript background so I was looking for something like a push into the array however looking at here I don't think there's anything like that here, its really tough because here I'm sending just 1 String alphabet, I'll be sending a lot more/unknown eventually.

Full Arduino code:

#define ledPin 7
int state = 0;
int position = 0;
byte bigVal[] = {0};
byte val;
bool readVals = false;

void setup() {
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, HIGH);
  Serial.begin(38400); // Default communication rate of the Bluetooth module
}
void loop() {
  while (Serial.available() > 0) {
    //state = Serial.read();
    val = Serial.read();
    bigVal[position] = val;
    position++;
    delay(500);
    readVals = true;
 }

 if (readVals == true) {
  //String myString = String(bigVal, "US-ASCII");
 }

 readVals = false;
 
 if (state == 2) {
  digitalWrite(ledPin, LOW); // Turn LED OFF
  Serial.println("LED: OFF"); // Send back, to the phone, the String "LED: ON"
  state = 0;
 }
 else if (state == '1') {
  digitalWrite(ledPin, HIGH);
  Serial.println("LED: ON");;
  state = 0;
 } 
}

Android output stream link: OutputStream  |  Android Developers

I'll be sending a lot more/unknown eventually.

Even if there were such functions (bearing in mind that you could write them yourself) you would eventually need an array large enough to hold the largest number of elements that could ever be required and would need the memory to accommodate it. The solution is, of course, to declare the array large enough in the first place and to include code to ensure that you don't stray out of the array bounds

Ok thanks, anyone know if what I'm reading on the monitor are bytes and how to convert please?

Ollizzle:
Ok thanks, anyone know if what I'm reading on the monitor are bytes and how to convert please?

Serial only works on a byte by byte basis so
    val = Serial.read();reads one byte. Depending on the program sending the data the byte could be interpreted as a decimal value such as 65, a character such as 'A' or a 0 or 1 which is part of an inefficient binary stream Is that the value that you want to convert and if so what do you want to convert it to ?

I sent String "H" on the Android side and got "0 128 248", first came 0 then 128 and finally 248, I want to convert these back to the String "H"

byte bigVal[] = {0};

How many elements can this array hold?

    val = Serial.read();
    bigVal[position] = val;
    position++;

Checking that there is room in the array BEFORE writing to the array is generally a good idea.

    delay(500);

Stuffing your head in the sand for half a second per byte is not.

int state = 0;

 if (state == 2) {
 }
 else if (state == '1') {

Doesn't seem likely that either if statement will ever evaluate to true.

Ollizzle:
I sent String "H" on the Android side and got "0 128 248", first came 0 then 128 and finally 248, I want to convert these back to the String "H"

Was that after you fixed the problem with the array with only one element ?

UKHeliBob:
Was that after you fixed the problem with the array with only one element ?

Yes, I was logging(Serial.println(val)) val before assigning so that wasn't a problem