ACCESS_FINE_LOCATION being granted in manifest, yet always getting permission denied?
<p>I'm currently trying to get the latitude and longitude of the user's current location. I have enabled the following permissions in the manifest. TargetSDK and min sdk are 23</p>

<pre><code>&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.name.app"&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;supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="true"
        android:smallScreens="false" /&gt;


    &lt;activity
        android:name=".SplashScreen"
        android:screenOrientation="portrait"&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;activity
        android:name=".MainMenu" /&gt;
    &lt;activity
        android:name=".NeedToKnow" /&gt;
    &lt;activity
        android:name=".SelectTopic" /&gt;
    &lt;activity
        android:name=".DisplayTopicInformation"/&gt;
    &lt;activity
        android:name=".SelectCheckList" /&gt;
    &lt;activity
        android:name=".ViewCheckList"/&gt;
    &lt;activity
        android:name=".FindLocation"&gt;&lt;/activity&gt;
&lt;/application&gt;

&lt;uses-permission android:name="android.permission.INTERNET" /&gt;
&lt;uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /&gt;
&lt;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /&gt;


&lt;/manifest&gt;
</code></pre>

<p>In order to do so I understand that I need to perform a runtime check for the permissions.  However when I perform the following I always get -1 in return. (PERMISSION_DENIED)</p>

<pre><code>int permissionCheck = ContextCompat.checkSelfPermission(getApplicationContext(),
            Manifest.permission.ACCESS_FINE_LOCATION);
</code></pre>

<p>Is there a step I am missing when trying to access current locations? </p>

<p>Full code is here: </p>

<pre><code>private String getZipcodeFromCurrentLocation() {

    int permissionCheck = ContextCompat.checkSelfPermission(getApplicationContext(),
            Manifest.permission.ACCESS_FINE_LOCATION);

    String zip = null;
    Location location = null;
    LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

    LocationListener locationListener = new LocationListener() {
        public void onLocationChanged(Location location) {
            latitude = location.getLatitude();
            longitude = location.getLongitude();

            Log.i("updated lat", String.valueOf(latitude));
            Log.i("updated lng", String.valueOf(longitude));
        }


    };

    try {
        if (PackageManager.PERMISSION_GRANTED == permissionCheck) {
            lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
        }

    } catch (SecurityException e){
        e.printStackTrace();
    }
    return zip;

}
</code></pre>