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の例をわずかに変更したものです。
どのようなデバイスでテストしていますか?たぶんそれはGPSアンテナを持っていないのでしょうか? –
Letv 1s、android marshmallow。 – warl0ck
類似:http://stackoverflow.com/questions/43833725/heremap-positioninglistener-was-never-called、そこにいくつかのデバッグの提案があります。 – AndrewJC