2017-04-07 9 views
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); 
    } 
} 
+0

_ IndoorAtlasの技術に関する私の(あいまいな)理解は、すでにマップされている領域マップされます。建物の「磁気指紋」に基づいており、最初に取得する必要があるため、「どこでも」動作する可能性はほとんどありません。 –

答えて

0

Here IndoorAtlasは、SDKのコード例をいくつか挙げています。問題を見つけることができるはずです。

関連する問題