Ich entwickle derzeit eine App in einer Schule/Prüfung Zweck. Ich benutze Android Studio 2.0 und ein OPO mit 5.1.1 und ein Nexus 7 mit 6.0.1!Benötigen Sie ein Android Studio/OSMDroid Guide für ein Schulprojekt
Ziel ist es, den Standort des Geräts auf einer Karte anzuzeigen und eine Route durch Wegpunkte (kulturelle Gebäude) zu verfolgen.
Ich habe kein Problem Anzeigen der Karte (ich bin in der Lage, es zu zentrieren auf meine Stadt und mit einem guten Zoom-Stufe)
Jetzt möchte ich den aktuellen Standort des Geräts angezeigt werden soll. begegne ich Probleme mit Berechtigungen ..
Mein Manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="alpha.testmap">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
// AUTORISATIONS
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Mein MainActivity.java:
package alpha.testmap;
import android.Manifest;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import org.osmdroid.api.IMapController;
import org.osmdroid.tileprovider.tilesource.TileSourceFactory;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapView;
public class MainActivity extends Activity {
private LocationManager mLocMgr;
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
//Can't find the class of this fonction --> REQUEST_LOCATION);
}else {
Location myLocation = LOCATION_SERVICE.FusedLocationApi.getLastLocaation(mGoogleApiClient);
}
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
//Can't find the class of this fonction --> REQUEST_LOCATION);
}
setContentView(R.layout.activity_main);
MapView map = (MapView) findViewById(R.id.map);
map.setTileSource(TileSourceFactory.MAPNIK);
//Adding zoom ability
map.setBuiltInZoomControls(true);
map.setMultiTouchControls(true);
//Create a default point
IMapController mapController = map.getController();
mapController.setZoom(16);
GeoPoint ptStart = new GeoPoint(47.215576, -1.549089);
mapController.setCenter(ptStart);
GeoPoint ptTourLu = new GeoPoint(47.21545, -1.54624);
//GPS
mLocMgr = (LocationManager) getSystemService(LOCATION_SERVICE);
mLocMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 100, (LocationListener) this);
}
}
Welches Problem haben Sie mit Berechtigungen konfrontiert? Bitte im Detail angeben. Als eine gute Regel im Leben, wann immer du jemandem dein Problem erklärst, betrachte die andere Person als ein Baby, das nichts weiß. Also bemühe dich, die andere Person verstehen zu lassen. – Skynet
Ich versuche den Speicherort meines Geräts zu ermitteln. Wenn ich die Prüfung, ob die Erlaubnis erteilt werden oder nicht, der letzte Parameter der requestPermissions nicht kompiliert .. ActivityCompat.requestPermissions (this, new String [] {} Manifest.permission.ACCESS_COARSE_LOCATION, REQUEST_LOCATION) ; – tomytr96
Überprüfen Sie das Beispiel Osmdroid-Projekt. Ihrem Code fehlt das wichtige MyLocationOverlay, das ein Symbol für Ihren Standort auf der Karte platziert. – spy