2017-05-12 16 views
0

GPSを使って現在の場所を取得しようとしています。ユーザーの現在位置を取得できません。ここからマップsdk

以下は、必要なすべての権限を取得した後に呼び出されるinitialize()メソッドです。私はここで指定したように、このラインを持つユーザの地理位置を取得しようとすると、ドキュメント PositioningManager posManager = PositioningManager.getInstance(); posManager.start(PositioningManager.LocationMethod.GPS); GeoPosition position = posManager.getPosition(); は今、私の問題は、どこが間違っつもりかわからない、nullを返す常に位置でマッピングしています。

の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のマニフェストファイル:

<?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> 

ここでは完全なJavaコードでGithub Gistへのリンクがあります。誰かが私に間違っていることを教えてもらえますか?

このJavaコードは、Hereマップのsdkの例をわずかに変更したものです。

+0

どのようなデバイスでテストしていますか?たぶんそれはGPSアンテナを持っていないのでしょうか? –

+0

Letv 1s、android marshmallow。 – warl0ck

+0

類似:http://stackoverflow.com/questions/43833725/heremap-positioninglistener-was-never-called、そこにいくつかのデバッグの提案があります。 – AndrewJC

答えて

1

デバイスが適切な位置固定を取得できなかったようです。 DDMSを使用してデバイスに位置を注入するか、アプリストアのMockitoのようなGPSシミュレータを使用してデバイスの位置をシミュレートしてください。開発中にモックロケーションのパーミッションが必要になります。また、デベロッパー設定ページでGPSモック設定を設定することもできます。

+0

私はあなたのような同じ問題を抱えています。私がしたのは、SDKをそれ以降のバージョンにアップグレードすることでした。 ロケーションサービスが有効になっているかどうかを確認してください。 https://stackoverflow.com/questions/42236069/position-indicator-in-here-sdk-premium-is-not-showing – neilQ5

関連する問題