title: Android 6.0 "gps" location provider requires ACCESS_FINE_LOCATION permission
body: <p>I have all the premissions defined in my manifest for using gps. Like </p>
  
  <p>"uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /></p>
  
  <p>"uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/></p>
  
  <p>Everytime I try to open this activity on Android 6.0 it stops with this logcat message. But works on some phones. Can someone help me figure out, and provide a solution. I have been stuck in days trying to figure this out,and how to solve it.  </p>
  
  <pre><code>Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{org.data.smurf/org.data.smurf.Konkurranse}: java.lang.SecurityException: "gps" location provider requires ACCESS_FINE_LOCATION permission.
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3253)
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
     at android.app.ActivityThread.access$1100(ActivityThread.java:221)
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
     at android.os.Handler.dispatchMessage(Handler.java:102)
     at android.os.Looper.loop(Looper.java:158)
     at android.app.ActivityThread.main(ActivityThread.java:7224)
     at java.lang.reflect.Method.invoke(Method.java)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
  Caused by java.lang.SecurityException: "gps" location provider requires ACCESS_FINE_LOCATION permission.
     at android.os.Parcel.readException(Parcel.java:1620)
     at android.os.Parcel.readException(Parcel.java:1573)
     at android.location.ILocationManager$Stub$Proxy.requestLocationUpdates(ILocationManager.java:688)
     at android.location.LocationManager.requestLocationUpdates(LocationManager.java:908)
     at android.location.LocationManager.requestLocationUpdates(LocationManager.java:469)
     at org.data.smurf.Konkurranse.onCreate(Konkurranse.java:197)
     at android.app.Activity.performCreate(Activity.java:6876)
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135)
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206)
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
     at android.app.ActivityThread.access$1100(ActivityThread.java:221)
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
     at android.os.Handler.dispatchMessage(Handler.java:102)
     at android.os.Looper.loop(Looper.java:158)
     at android.app.ActivityThread.main(ActivityThread.java:7224)
     at java.lang.reflect.Method.invoke(Method.java)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
  </code></pre>
  
  <p>Here is my Konkurranse/Competition activity. I have removed code not related like menu , and actionbar. </p>
  
  <pre><code>Public class Konkurranse Extends Activity {
  
      /**
       * Called when the activity is first created.
       */
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          FacebookSdk.sdkInitialize(getApplicationContext());
          Fresco.initialize(getApplicationContext());
          setContentView(R.layout.activity_konkurranse);
          LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
  
  
  
          final com.facebook.Profile profile = com.facebook.Profile.getCurrentProfile();
          final ProfilePictureView profilePictureView = (ProfilePictureView) findViewById(R.id.profilepic);
          final TextView name = (TextView) findViewById(R.id.name);
          simpleDraweeView = (SimpleDraweeView) findViewById(R.id.profilePicture);
          RoundingParams roundingParams = RoundingParams.fromCornersRadius(50f);
          roundingParams.setRoundAsCircle(true);
          simpleDraweeView.getHierarchy().setRoundingParams(roundingParams);
  
  
          /// Logged IN \\\
          if (profile != null) {
              profilePictureView.getProfileId();
              profilePictureView.setProfileId(profile.getId());
              name.setText(profile.getName());
              simpleDraweeView.setImageURI(profile.getProfilePictureUri(100, 100));
          }
  
  
          final SharedPreferences sharedPrefs = getSharedPreferences("details", MODE_PRIVATE);
          //After referencing your Views, add this.
          final String nameStr = sharedPrefs.getString("name", null);
          final String idStr = sharedPrefs.getString("id", null);
          AccessToken token = AccessToken.getCurrentAccessToken();
          if (token != null) {
              if (nameStr != null) name.setText(nameStr);
              if (idStr != null) profilePictureView.setProfileId(idStr);
              simpleDraweeView.setImageURI(profile.getProfilePictureUri(100, 100));
          }
  
          //.. Do the same for other profile data
  
  
          mobilnummer = (EditText) findViewById(R.id.mobilnummer);
  
          buttongps = (Button) findViewById(R.id.gps);
          buttongps.setOnClickListener(onButtongpsClick);
  
          buttonblue = (Button) findViewById(R.id.bluetooth);
          buttonblue.setOnClickListener(onButtonblueClick);
  
  
          final LocationManager manager;
          manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
          final ImageView gpsImg = (ImageView) findViewById(R.id.gpsstatus);
          if (manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
              gpsImg.setImageResource(R.drawable.ok);
          } else {
              gpsImg.setImageResource(R.drawable.notok);  //not ok
          }
  
          // Register bluettoth listener
          bluetoothListener = new BluetoothListener() {
              @Override
              public void onBluetoothOff() {
                  btImg.setImageResource(R.drawable.notok);  //not ok
              }
  
              @Override
              public void onBluetoothOn() {
                  btImg.setImageResource(R.drawable.ok);
              }
          };
          IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
          registerReceiver(bluetoothListener, filter);
  
          gpsListener = new GPSListener(this) {
              @Override
              public void onGPSOff() {
                  gpsImg.setImageResource(R.drawable.notok);  //not ok
  
              }
  
              @Override
              public void onGPSOn() {
                  gpsImg.setImageResource(R.drawable.ok);
              }
          };
  
          // Henter fra SharedPrefs
          SharedPreferences prefs = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
          String savedMobileNumber = prefs.getString("mobilnummer", "");
          mobilnummer.setText(savedMobileNumber);
  
  
          final ImageView tlfstatus = (ImageView) findViewById(R.id.tlfstatus);
          if (mobilnummer.getText().toString().length() &gt;= 8) {
              tlfstatus.setImageResource(R.drawable.ok);
          } else {
              tlfstatus.setImageResource(R.drawable.notok); //not ok
          }
  
  
  
  
  
          // OnCreate ends here.
      }
  
  
  
      public View.OnClickListener onButtongpsClick = new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              Intent gpsOptionsIntent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
              startActivity(gpsOptionsIntent);
          }
      };
  
  
      public View.OnClickListener onButtonblueClick = new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              BluetoothAdapter mBluetoothAdapter;
              mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
              if (!mBluetoothAdapter.isEnabled()) mBluetoothAdapter.enable();
              ImageView img = (ImageView) findViewById(R.id.bluestatus);
              img.setImageResource(R.drawable.ok);
          }
      };
  }
  </code></pre>