2017-05-12 4 views
0

Ich versuche, den aktuellen Standort des Benutzers mit GPS zu erhalten.Kann die aktuelle Position des Benutzers nicht mit Hilfe von hier Karten sdk

Unten ist meine initialize() -Methode, die aufgerufen wird, nachdem alle erforderlichen Berechtigungen abgerufen wurden. Ich versuche, die Geoposition der Benutzer mit dieser Linie zu erhalten, wie hier angegebenen Karten Dokumentation PositioningManager posManager = PositioningManager.getInstance(); posManager.start(PositioningManager.LocationMethod.GPS); GeoPosition position = posManager.getPosition(); jetzt mein Problem Position immer wieder null, nicht sicher, wo ich falsch werde.

Methode initialize():

private void initialize() { 
     setContentView(R.layout.activity_main); 

     // Search for the map fragment to finish setup by calling init(). 
     mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.mapfragment); 
     mapFragment.init(new OnEngineInitListener() { 
      @Override 
      public void onEngineInitializationCompleted(OnEngineInitListener.Error error) { 
       if (error == OnEngineInitListener.Error.NONE) { 
        // retrieve a reference of the map from the map fragment 
        map = mapFragment.getMap(); 
        // Set the map center coordinate to the Vancouver region (no animation) 
        map.setCenter(new GeoCoordinate(19.174598, 72.860722), 
          Map.Animation.NONE); 
        // Set the map zoom level to the average between min and max (no animation) 
        map.setZoomLevel((map.getMaxZoomLevel() + map.getMinZoomLevel())/2); 
        MapMarker marker = new MapMarker(); 
        PositioningManager posManager = PositioningManager.getInstance(); 
        posManager.start(PositioningManager.LocationMethod.GPS_NETWORK); 
        posManager.start(PositioningManager.LocationMethod.GPS); 
//     GeoPosition position = posManager.getPosition(); 
        Log.d(LOG_TAG, "onEngineInitializationCompleted: " + posManager.hasValidPosition(PositioningManager.LocationMethod.GPS_NETWORK)); 
        TextView info = (TextView) findViewById(R.id.info); 
        boolean temp = posManager.hasValidPosition(PositioningManager.LocationMethod.GPS_NETWORK); 
        info.setText(Boolean.toString(temp)); 
        marker.setCoordinate(new GeoCoordinate(19.1745, 72.8)); 
        map.addMapObject(marker); 
       } else { 
        Log.e(LOG_TAG, "Cannot initialize MapFragment (" + error + ")"); 
       } 
      } 
     }); 

     textViewResult = (TextView) findViewById(R.id.title); 
     textViewResult.setText(R.string.textview_routecoordinates_2waypoints); 

    } 

Android Manifest-Datei:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.mapstutorial.simplerouting" > 

    <!-- <uses-sdk android:minSdkVersion="15" android:targetSdkVersion="23"/> 
     No longer needed since this is specified in build.gradle --> 

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <application 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name"> 
     <activity 
      android:name=".RoutingActivity" 
      android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <meta-data 
      android:name="com.here.android.maps.appid" 
      android:value="bm8G03BysQAjEHvyCgSm" /> 
     <meta-data 
      android:name="com.here.android.maps.apptoken" 
      android:value="CprS7w8rXTBHblaSlb8xVQ" /> 
    </application> 

</manifest> 

Hier ist der Link zu Github Gist mit komplettem Java-Code. Kann mir bitte jemand sagen was ich falsch mache.

Dieser Java-Code ist nur eine geringfügige Änderung von SDK Beispiel hier.

+0

Mit welcher Art von Gerät testen Sie? Vielleicht hat es keine GPS-Antenne? –

+0

Letv 1s, androide Marshmallow. – warl0ck

+0

Ähnlich wie: http://StackOverflow.com/Questions/43833725/HereMap-PositioningListener-was-Never- aufgerufen, können Sie einige Debugging-Vorschläge dort sehen. – AndrewJC

Antwort

1

Scheint, dass das Gerät keine korrekte Positionsbestimmung erhalten konnte. Verwenden Sie DDMS, um eine Position in das Gerät zu übertragen, oder verwenden Sie einen GPS-Simulator wie Mockito aus dem App Store, um die Position des Geräts zu simulieren. Sie benötigen die falsche Standorterlaubnis während der Entwicklung und auch die GPS-Mock-Einstellung auf der Entwicklereinstellungen-Seite.

+0

Ich habe das gleiche Problem wie Ihres. Was ich getan habe, ist das SDK auf die späteren Versionen zu aktualisieren. Versuchen Sie zu überprüfen, ob Ihr Standortdienst aktiviert ist. https://stackoverflow.com/questions/42236069/position-indicator-in-here-sdk-premium-is-not-showing – neilQ5

Verwandte Themen