0
テスト時に、IALocationListener内のonStatusChangedから更新を受信できますが、onLocationChangedは呼び出されていません。なぜこれがどんなアイデアですか?onLocationChangedがIndoorAtlasロケーションマネージャ内で呼び出されていない
私はIndoorAtlas(http://docs.indooratlas.com/android/dev-guide/getting-user-location.html)の指示に加え、YouTubeのビデオ(https://www.youtube.com/watch?v=2EXkV4xL5rg)でも場所を取得できませんでした。
私はマップした領域にいなければなりませんか、どこにいてもその位置を読み取る必要がありますか?
package com.bignerdranch.android.indoormapping;
import android.Manifest;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.os.Bundle;
import android.util.Log;
import com.indooratlas.android.sdk.IALocation;
import com.indooratlas.android.sdk.IALocationListener;
import com.indooratlas.android.sdk.IALocationManager;
import com.indooratlas.android.sdk.IALocationRequest;
public class MappingActivity extends FragmentActivity {
private final int CODE_PERMISSIONS = 0;
private IALocationManager mIALocationManager;
private static final String TAG = "LocateActivity";
private IALocationListener mIALocationListener = new IALocationListener() {
@Override
public void onLocationChanged(IALocation iaLocation) {
Log.d(TAG, "Latitude: " + iaLocation.getLatitude());
}
@Override
public void onStatusChanged(String s, int i, Bundle bundle) {
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mapping);
mIALocationManager = IALocationManager.create(this);
// request permissions for coarse location and Wifi
String[] neededPermissions = {
Manifest.permission.CHANGE_WIFI_STATE,
Manifest.permission.ACCESS_WIFI_STATE,
Manifest.permission.ACCESS_COARSE_LOCATION
};
ActivityCompat.requestPermissions(this, neededPermissions, CODE_PERMISSIONS);
FragmentManager fm = getSupportFragmentManager();
Fragment fragment = fm.findFragmentById(R.id.fragment_cont);
if(fragment == null) {
fragment = new MappingFragment();
fm.beginTransaction()
.add(R.id.fragment_cont, fragment)
.commit();
}
}
// handle any permissions that are denied
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
@Override
public void onResume() {
super.onResume();
mIALocationManager.requestLocationUpdates(IALocationRequest.create(), mIALocationListener);
}
@Override
public void onPause() {
super.onPause();
mIALocationManager.removeLocationUpdates(mIALocationListener);
}
}
_ IndoorAtlasの技術に関する私の(あいまいな)理解は、すでにマップされている領域マップされます。建物の「磁気指紋」に基づいており、最初に取得する必要があるため、「どこでも」動作する可能性はほとんどありません。 –