Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ACCESS_FINE_LOCATION permission

I'm litte ashamed. But cant find what's wrong.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.szymon.gpslab1"
android:versionCode="15"
android:versionName="4.0.3">

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET"/>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
</manifest>

It's my manifest. and here's my code:

public class MainActivity extends AppCompatActivity {
LocationManager locationManager;
LocationListener locationListener;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    locationListener = new MyLocationListener();

    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
}
private class MyLocationListener implements LocationListener{

    @Override
    public void onLocationChanged(Location location) {
        System.out.println("ZMIENIAMY SIĘ, zmieniamy siebie");
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {

    }

    @Override
    public void onProviderEnabled(String provider) {

    }

    @Override
    public void onProviderDisabled(String provider) {

    }
}
}

Im using the newest android studio (intellij) with embedded (?) emulator. Phone is out of options. ANd here what i've got:

FATAL EXCEPTION: main  
Process: com.example.szymon.gpslab1, PID: 3274  
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.szymon.gpslab1/com.example.szymon.gpslab1.MainActivity}: java.lang.SecurityException: "gps" location provider requires ACCESS_FINE_LOCATION permission.  

Caused by: java.lang.SecurityException: "gps" location provider requires ACCESS_FINE_LOCATION permission.  

I belive this is stupid mistake, but I've never like developed for android, im the javaman, and i've reached every tutorial on net, cant find answer.

Ah and y, I have location on in my emulator.

like image 294
Nickname0222022022 Avatar asked Oct 04 '15 17:10

Nickname0222022022


People also ask

What is the purpose of setting the user permission for Access_fine_location?

Android offers two location permissions: ACCESS_COARSE_LOCATION and ACCESS_FINE_LOCATION . The permission you choose determines the accuracy of the location returned by the API.

What type of permission is required for Wi Fi network?

Apps that target Android 13 (API level 33) or higher and manage Wi-Fi connections must request the NEARBY_WIFI_DEVICES runtime permission.


1 Answers

This is a common exception if your target SDK is 23 in your build.gradle.

Android 6.0 / sdk 23 introduces a new way of requesting permissions.

See the link below for how to handle permissions:

https://developer.android.com/training/permissions/index.html

like image 173
AndroidEnthusiast Avatar answered Sep 30 '22 15:09

AndroidEnthusiast