Receiving data from bluetooth Arduino into Android app

Hey, I just want help with my project right now and I've been stuck for days now in this problem that I have. I want to send Data from the Arduino project I built with HC-06 bluetooth module in it to the Android app that I created with MIT app inventor. I searched some tutorials, forums and samples that could help me but there were problems along the way. for some reason, it only accepts integer as the variable to print in the Serial port and when I use String it won't print it.

I tried combining all of the values into one string but it just won't print it. I tried String conversion one by one in each print and it still doesn't work. I am currently at my wits end and I'm willing to receive help in any way possible.

here is my Arduino Code: (It is pretty long)

#include <SoftwareSerial.h>
#include <OneWire.h>
#include <Wire.h>
#include <DallasTemperature.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

// For the i2c supported Oled display module which is 128x64 
#define SCREEN_WIDTH 128    // OLED display width, in pixels
#define SCREEN_HEIGHT 64    // OLED display height, in pixels
#define OLED_RESET -1       // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

// Moisture sensor values
const int AirValue = 600;
const int WaterValue = 300;
int soilMoistureValue = 0;
int soilmoisture;

#define ONEWIRE_CRC 5

#define RE 8
#define DE 7

const byte code[] = {0x01, 0x03, 0x00, 0x1e, 0x00, 0x03, 0x65, 0xCD};
byte values[11];

SoftwareSerial mod(2,3); // MAX485 RO, DI

float temperature;
int nitrogen;
int phosphorus;
int potassium;
OneWire oneWire(ONEWIRE_CRC);
DallasTemperature sensors(&oneWire);

void setup() {
  Serial.begin(9600);
  mod.begin(9600); 
  sensors.begin();
  pinMode(RE, OUTPUT);
  pinMode(DE, OUTPUT);
  
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //initialize with the I2C addr 0x3C (128x64)
  delay(500);
  display.clearDisplay();
  display.setCursor(30, 15);
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.println(" NPK Sensor");
  display.setCursor(30, 35);
  display.setTextSize(1);
  display.print("Initializing");
  display.display();
  delay(2000);
}
 
void loop() {
  mod.listen();
  if(mod.isListening()){
    //Serial.println("Port MOD is Listening");
    byte val;
    digitalWrite(DE, HIGH);
    digitalWrite(RE, HIGH);
    delay(10);
    if (mod.write(code, sizeof(code)) == 8)
    {
      digitalWrite(DE, LOW);
      digitalWrite(RE, LOW);
      for (byte i = 0; i < 11; i++)
      {
        //Serial.print(mod.read(),HEX);
        values[i] = mod.read();
        //Serial.print(values[i], HEX);
      }
      //Serial.println();
    }
    nitrogen = values[4];
    phosphorus = values[6];
    potassium = values[8];
  }else{
    Serial.println("Port not listening");
  }
  delay(100);

  soilMoistureValue = analogRead(A0);
  soilmoisture = map(soilMoistureValue, AirValue, WaterValue, 0, 100);
  {
    if (soilmoisture >= 100)
    {
      soilmoisture = 100;
    }
    else if (soilmoisture <= 0)
    {
      soilmoisture = 0;
    }
    else if (soilmoisture > 0 && soilmoisture < 100)
    {
      soilmoisture = soilmoisture;
    }
  }
  sensors.requestTemperatures();
  temperature=sensors.getTempCByIndex(0);
  delay(100);

  display.clearDisplay();
  display.setTextSize(1);
  display.setCursor(30, 10);
  display.print("N: ");
  display.print(nitrogen);
  display.print(" mg/kg");
 
  display.setTextSize(1);
  display.setCursor(30, 20);
  display.print("P: ");
  display.print(phosphorus);
  display.print(" mg/kg");
 
  display.setTextSize(1);
  display.setCursor(30, 30);
  display.print("K: ");
  display.print(potassium);
  display.print(" mg/kg");

  display.setTextSize(1);
  display.setCursor(30, 40);
  display.print("Moisture: ");
  display.print(soilmoisture);
  display.print("%");

  display.setTextSize(1);
  display.setCursor(30, 50);
  display.print("Temp: ");
  display.print(temperature);
  display.println("C");
  display.display();

  Serial.print(nitrogen);
  Serial.print(phosphorus);
  Serial.print(potassium);
  Serial.print(soilmoisture);
  Serial.print(temperature);;
  delay(800);
}

And here is my Android block.

Note: BlueTooth DelimiterByte is already at 10.