ACCESS_FINE_LOCATION autorisation
Je suis petite honte. Mais je ne trouve pas quel est le problème.
<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>
C'est mon manifeste.
et voici mon 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 en utilisant le plus récent android studio (ide) avec embedded (?) l'émulateur. Téléphone est à court d'options.
Et voici ce que j'ai:
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.
Je trouve que c'est stupide erreur, mais je n'ai jamais comme développé pour android, im la javaman, et j'ai atteint chaque tutoriel sur le net, je ne trouve pas de réponse.
Ah et y, j'ai emplacement sur dans mon émulateur.
Quelle version d'Android sont vous de test, et qu'est-ce que votre
Je trouve que celui par défaut. Si minime 15, max (cible?) 23? Mais pas sûr. Essayé de le changer dans androidmanifest à l'aide de <uses-sdk android:minSdkVersion="15" android:targetSdkVersion="15"/> n'a pas aider encore. En regardant AndroidEnthausiast réponse maintenant.
commonsware.com/blog/2015/08/31/...
targetSdkVersion
?Je trouve que celui par défaut. Si minime 15, max (cible?) 23? Mais pas sûr. Essayé de le changer dans androidmanifest à l'aide de <uses-sdk android:minSdkVersion="15" android:targetSdkVersion="15"/> n'a pas aider encore. En regardant AndroidEnthausiast réponse maintenant.
commonsware.com/blog/2015/08/31/...
OriginalL'auteur Sarseth | 2015-10-04
Vous devez vous connecter pour publier un commentaire.
C'est une exception, si votre cible SDK est 23 dans votre construction.gradle.
Android 6.0 /sdk 23 introduit une nouvelle façon de demander des autorisations.
Voir le lien ci-dessous pour savoir comment gérer les autorisations:
https://developer.android.com/training/permissions/index.html
OriginalL'auteur AndroidEnthusiast