J'ai peu honte. Mais je ne peux pas trouver ce qui ne va pas.
<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) {
}
}
}
J'utilise le plus récent Android studio (intellij) avec émulateur intégré (?). Le téléphone est hors 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 crois que c'est une erreur stupide, mais je n'ai jamais aimé développé pour Android, je suis le javaman, et j'ai atteint tous les tutoriels sur le net, je ne trouve pas de réponse.
Ah et y, j'ai un emplacement dans mon émulateur.
Il s'agit d'une exception courante si votre SDK cible est 23 dans votre build.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