title: Android Arduino Bluetooth communication crash on starting
body: <p>i have been trying to use bluetooth to comunicate between arduino and bluetooth
  and there is no errors on build
  tell me what is wrong 
  i had issues with IO Exception but it solved now ... maybe
  the app just crashes when i try to run it on phone 
  help me i am not that good at java</p>
  
  <pre><code>    package com.example.administrator.myapplication;
  
      import android.support.v7.app.AppCompatActivity;
      import android.os.Bundle;
      import android.os.Bundle;
      import android.app.Activity;
      import android.bluetooth.BluetoothAdapter;
      import android.bluetooth.BluetoothDevice;
      import android.bluetooth.BluetoothSocket;
      import android.content.BroadcastReceiver;
      import android.content.Context;
      import java.util.Set;
      import android.content.Intent;
      import android.content.IntentFilter;
      import android.view.View;
      import android.view.View.OnClickListener;
      import android.widget.ArrayAdapter;
      import android.widget.Button;
      import android.widget.ListView;
      import android.widget.TextView;
      import android.widget.Toast;
      import java.io.FileOutputStream;
      import java.io.IOException;
      import java.io.OutputStream;
      import java.io.InputStream;
      import android.os.ParcelUuid;
  
  
  
  
  
      public class MainActivity extends AppCompatActivity {
  
      private static final int REQUEST_ENABLE_BT = 1;
      private Button onBtn, offBtn ,listBtn ,findBtn;
      private TextView text;
  
      private Button UpBtn ,DownBtn ,LeftBtn ,RightBtn;
  
      private BluetoothAdapter myBluetoothAdapter;
      private Set&lt;BluetoothDevice&gt; pairedDevices;
      private ListView myListView;
      private ArrayAdapter&lt;String&gt; BTArrayAdapter;
      private OutputStream outputStream;
      private InputStream inStream;
  
  
      protected void onCreate(Bundle savedInstanceState){
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          myBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
          Set&lt;BluetoothDevice&gt; bondedDevices = myBluetoothAdapter.getBondedDevices();
  
          if (myBluetoothAdapter == null) {
              onBtn.setEnabled(false);
              offBtn.setEnabled(false);
              listBtn.setEnabled(false);
              findBtn.setEnabled(false);
              UpBtn.setEnabled(false);
              DownBtn.setEnabled(false);
              LeftBtn.setEnabled(false);
              RightBtn.setEnabled(false);
  
              text.setText("Status: not supported");
  
              Toast.makeText(getApplicationContext(), "Your device does not support Bluetooth",
                      Toast.LENGTH_LONG).show();
          } else {
  
             if(bondedDevices.size() &gt; 0 ){
  
                  BluetoothDevice[] devices = (BluetoothDevice[]) bondedDevices.toArray();
                  BluetoothDevice device = devices[0];
                  ParcelUuid[] uuids = device.getUuids();
                   try{
                      BluetoothSocket socket = device.createRfcommSocketToServiceRecord(uuids[0].getUuid());
                      socket.connect();
                      outputStream = socket.getOutputStream();
                      inStream = socket.getInputStream();
                  } catch (IOException e){
  
                 }
              }
  
  
  
  
              //Movement
              UpBtn = (Button) findViewById(R.id.Upbutton);
              DownBtn = (Button) findViewById(R.id.Downbutton);
              LeftBtn = (Button) findViewById(R.id.Leftbutton);
              RightBtn = (Button) findViewById(R.id.Rightbutton);
  
              UpBtn.setOnClickListener(new OnClickListener()  {
                  @Override public void onClick(View v)  {
                      try {
                          C(v, 8);
                      }
                         catch (IOException e ){
  
                             System.out.println("3 SEND FAILED");
                          }
  
                  }
              });
  
              DownBtn.setOnClickListener(new OnClickListener() {
                  @Override public void onClick(View v) {
                      try {
                          C(v, 2);
                      } catch (IOException e) {
                          System.out.println("2 SEND FAILED");
                      }
                  }
              });
  
              LeftBtn.setOnClickListener(new OnClickListener() {
                  @Override
                  public void onClick(View v)  {
                      try {
                          C(v, 4);
                      } catch (IOException e) {
                          System.out.println(" 4 SEND FAILED");
                      }
  
                  }
              });
  
              RightBtn.setOnClickListener(new OnClickListener() {
                  @Override
                  public void onClick(View v){
                      try {
                          C(v, 6);
                      } catch (IOException e) {
                          System.out.println(" 6 SEND FAILED");
                      }
                  }
              }
              );
  
              //.........................
              //..................
              //Normal Code
              text = (TextView) findViewById(R.id.textView);
              //text.setText ( "" + myBluetoothAdapter.getName());
  
  
  
              onBtn = (Button) findViewById(R.id.Onbutton);
              onBtn.setOnClickListener(new OnClickListener() {
  
                  @Override
                  public void onClick(View v) {
                      // TODO Auto-generated method stub
                      on(v);
                  }
              });
  
              offBtn = (Button) findViewById(R.id.Offbutton);
              offBtn.setOnClickListener(new OnClickListener() {
  
                  @Override
                  public void onClick(View v) {
                      // TODO Auto-generated method stub
                      off(v);
                  }
              });
  
              listBtn = (Button) findViewById(R.id.Listbutton);
              listBtn.setOnClickListener(new OnClickListener() {
  
                  @Override
                  public void onClick(View v) {
                      // TODO Auto-generated method stub
                      list(v);
                  }
              });
  
              findBtn = (Button) findViewById(R.id.Pairedbutton);
              findBtn.setOnClickListener(new OnClickListener() {
  
                  @Override
                  public void onClick(View v) {
                      // TODO Auto-generated method stub
                      find(v);
                  }
              });
  
              myListView = (ListView) findViewById(R.id.listView1);
  
              // create the arrayAdapter that contains the BTDevices, and set it to the ListView
              BTArrayAdapter = new ArrayAdapter&lt;String&gt;(this, android.R.layout.simple_list_item_1);
              myListView.setAdapter(BTArrayAdapter);
          }
      }
  
      public void on(View view) {
          if (!myBluetoothAdapter.isEnabled()) {
              Intent turnOnIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
              startActivityForResult(turnOnIntent, REQUEST_ENABLE_BT);
  
              Toast.makeText(getApplicationContext(), "Bluetooth turned on",
                      Toast.LENGTH_LONG).show();
          } else {
              Toast.makeText(getApplicationContext(), "Bluetooth is already on",
                      Toast.LENGTH_LONG).show();
          }
      }
  
      @Override
      protected void onActivityResult(int requestCode, int resultCode, Intent data) {
          // TODO Auto-generated method stub
          if (requestCode == REQUEST_ENABLE_BT) {
              if (myBluetoothAdapter.isEnabled()) {
                  text.setText("Status: Enabled");
              } else {
                  text.setText("Status: Disabled");
              }
          }
      }
  
      public void list(View view) {
          // get paired devices
          pairedDevices = myBluetoothAdapter.getBondedDevices();
  
          // put it's one to the adapter
          for (BluetoothDevice device : pairedDevices)
              BTArrayAdapter.add(device.getName() + "\n" + device.getAddress());
  
          Toast.makeText(getApplicationContext(), "Show Paired Devices",
                  Toast.LENGTH_SHORT).show();
  
      }
  
      final BroadcastReceiver bReceiver = new BroadcastReceiver() {
          public void onReceive(Context context, Intent intent) {
              String action = intent.getAction();
              // When discovery finds a device
              if (BluetoothDevice.ACTION_FOUND.equals(action)) {
                  // Get the BluetoothDevice object from the Intent
                  BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
                  // add the name and the MAC address of the object to the arrayAdapter
                  BTArrayAdapter.add(device.getName() + "\n" + device.getAddress());
                  BTArrayAdapter.notifyDataSetChanged();
              }
          }
      };
  
      public void find(View view) {
          if (myBluetoothAdapter.isDiscovering()) {
              // the button is pressed when it discovers, so cancel the discovery
              myBluetoothAdapter.cancelDiscovery();
          } else {
              BTArrayAdapter.clear();
              myBluetoothAdapter.startDiscovery();
  
              registerReceiver(bReceiver, new IntentFilter(BluetoothDevice.ACTION_FOUND));
          }
      }
  
      public void off(View view) {
          myBluetoothAdapter.disable();
          text.setText("Status: Disconnected");
  
          Toast.makeText(getApplicationContext(), "Bluetooth turned off",
                  Toast.LENGTH_LONG).show();
      }
  
      public void C (View View , float H) throws IOException{
             if(H == 8){
  
                      outputStream.write("8".toString().getBytes());
             }
             if(H == 2){
                       outputStream.write("2".toString().getBytes());
             }
             if(H == 4){
                       outputStream.write("4".toString().getBytes());
             }
             if(H == 6){
                       outputStream.write("6".toString().getBytes());
             }
  
      }
  
  
      @Override
      protected void onDestroy() {
          // TODO Auto-generated method stub
          super.onDestroy();
          unregisterReceiver(bReceiver);
      }
  
  }
  </code></pre>
  
  <p>and here is the manifest </p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.example.administrator.myapplication" &gt;
  
  &lt;application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:supportsRtl="true"
      android:theme="@style/AppTheme" &gt;
      &lt;activity android:name=".MainActivity" &gt;
  
          &lt;intent-filter&gt;
              &lt;action android:name="android.intent.action.MAIN" /&gt;
  
              &lt;category android:name="android.intent.category.LAUNCHER" /&gt;
          &lt;/intent-filter&gt;
      &lt;/activity&gt;
  &lt;/application&gt;
  
  &lt;/manifest&gt;
  </code></pre>