title: Problems with android bluetooth permissions
body: <p>First, sorry for my bad English, I'm Spanish (And new to android developing). I am developing a simple Bluetooth file sender, I am basing on BluetoothChat android example step by step.</p>
  
  <p>Now I have a bluetooth activate request to the user, and select yes or no option application crashes.</p>
  
  <p>I have the permissions declared in the Manifest.</p>
  
  <p>The thing is, if user select yes to activate bluetooth, bluetooth actually activates but app still crashes after that.</p>
  
  <p>I don't know if ACRA is in conflict with this, I'm using it because mi device is huawei u8650 and I don't find usb drivers to run app directly in the device from eclipse, so I move the .apk file every time to SD card.</p>
  
  <p>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.BTSender"
      android:versionCode="1"
      android:versionName="1.0" &gt;
      &lt;uses-sdk android:minSdkVersion="10" /&gt;    
      &lt;uses-permission android:name="android.permission.BLUETOOTH"/&gt;
      &lt;uses-permission android:name="android.permission.INTERNET"/&gt;
      &lt;uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/&gt;
      &lt;application
          android:icon="@drawable/ic_launcher"
          android:label="@string/app_name" android:name="MyApplication"&gt;
          &lt;activity
              android:name=".BluetoothSenderActivity"
              android:label="@string/app_name" &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>
  
  <p>and here is the main ( and only ) activity:</p>
  
  <pre><code>package com.BTSender;
  
  import android.app.Activity;
  import android.bluetooth.BluetoothAdapter;
  import android.content.Intent;
  import android.os.Bundle;
  import android.util.Log;
  import android.widget.Toast;
  
  public class BluetoothSenderActivity extends Activity {
  
      private BluetoothAdapter BTAdapter;
      private String TAG = "BTSender";
      private final int REQUEST_ENABLE_BT = 2;
  
      @Override
      public void onCreate(Bundle savedInstanceState) {
          // Creating window layout
          Log.v(TAG, "**Creating window**");
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
          Log.v(TAG, "**Window created");
          // Get the bluetooth adapter
          BTAdapter = BluetoothAdapter.getDefaultAdapter();
          // If null, that means bluetooth is not supported on the device
          if (BTAdapter == null) {
              Toast.makeText(this, R.string.BluetoothNotSupported,
                  Toast.LENGTH_LONG).show();
              finish();
              return;
          }
      }
  
      @Override
      public void onStart() {
          // Check if Bluetooth is enabled, otherwise request user to enable it
          if (!BTAdapter.isEnabled()) {
              // IT NEEDS BLUETOOTH PERMISSION
              // Intent to enable bluetooth, it will show the enable bluetooth
              // dialog
              Intent enableIntent = new Intent(
                      BluetoothAdapter.ACTION_REQUEST_ENABLE);
              // this is to get a result if bluetooth was enabled or not
              startActivityForResult(enableIntent, REQUEST_ENABLE_BT);
              // It will call onActivityResult method to determine if Bluetooth
              // was enabled or not
          } else {
              // Bluetooth is enabled
          }
      }
  
      // this will be called when in onStart method startActivityForResult is
      // executed
      public void onActivityResult(int requestCode, int resultCode, Intent data) {
          Log.v(TAG, "** onActivityResult **");
          // determine from which activity
          switch (requestCode) {
          // if it was the request to enable Bluetooth:
          case REQUEST_ENABLE_BT:
              if (resultCode == Activity.RESULT_OK) {
                  // Bluetooth is enabled now
                  Log.v(TAG, "** Bluetooth is now enabled**");
              } else {
                  // user decided not to enable Bluetooth so exit application
                  Log.v(TAG, "** Bluetooth is NOT enabled**");
                  Toast.makeText(this, R.string.BluetoothNotEnabled,
                      Toast.LENGTH_LONG).show();
                  finish();
              }
          }
      }
  }
  </code></pre>
  
  <p>I have read answers in Stackoverflow recently and this is my first question.
  I would appreciate any answers. Also tips on improve my developing. Thanks in advance!</p>
  
  <pre><code>java.lang.RuntimeException: Unable to start activity      
  ComponentInfo{com.BTSender/com.BTSender.BluetoothSenderActivity}:  
  java.lang.SecurityException: Need BLUETOOTH permission: Neither user 10076 nor current 
  process has android.permission.BLUETOOTH.
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1654)
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1670)
      at android.app.ActivityThread.access$1500(ActivityThread.java:117)
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
      at android.os.Handler.dispatchMessage(Handler.java:99)
      at android.os.Looper.loop(Looper.java:123)
      at android.app.ActivityThread.main(ActivityThread.java:3695)
      at java.lang.reflect.Method.invokeNative(Native Method)
      at java.lang.reflect.Method.invoke(Method.java:507)
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
      at dalvik.system.NativeStart.main(Native Method)
  Caused by: java.lang.SecurityException: Need BLUETOOTH permission: Neither user 10076    
  nor current process has android.permission.BLUETOOTH.
      at android.os.Parcel.readException(Parcel.java:1322)
      at android.os.Parcel.readException(Parcel.java:1276)
      at android.bluetooth.IBluetooth$Stub$Proxy.isEnabled(IBluetooth.java:496)
      at android.bluetooth.BluetoothAdapter.isEnabled(BluetoothAdapter.java:351)
      at com.BTSender.BluetoothSenderActivity.onStart(BluetoothSenderActivity.java:51)
      at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
      at android.app.Activity.performStart(Activity.java:3791)
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1627)
      ... 11 more
  java.lang.SecurityException: Need BLUETOOTH permission: Neither user 10076 nor current   
  process has android.permission.BLUETOOTH.
      at android.os.Parcel.readException(Parcel.java:1322)
      at android.os.Parcel.readException(Parcel.java:1276)
      at android.bluetooth.IBluetooth$Stub$Proxy.isEnabled(IBluetooth.java:496)
      at android.bluetooth.BluetoothAdapter.isEnabled(BluetoothAdapter.java:351)
      at com.BTSender.BluetoothSenderActivity.onStart(BluetoothSenderActivity.java:51)
      at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
      at android.app.Activity.performStart(Activity.java:3791)
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1627)
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1670)
      at android.app.ActivityThread.access$1500(ActivityThread.java:117)
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
      at android.os.Handler.dispatchMessage(Handler.java:99)
      at android.os.Looper.loop(Looper.java:123)
      at android.app.ActivityThread.main(ActivityThread.java:3695)
      at java.lang.reflect.Method.invokeNative(Native Method)
      at java.lang.reflect.Method.invoke(Method.java:507)
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
      at dalvik.system.NativeStart.main(Native Method)
  </code></pre>
  
  <p>If it helps. When installing the app it says the three permissions, internet, bluetooth and bluetooth_admin, and it runs  BluetoothAdapter.getDefaultAdapter(); without problems, even it runs the intent for bluetooth request, but it is when the onActivityResult comes into play when the app crashes it's like the app have lost the bluetooth permissions but thats is strange.</p>