2016-08-21 6 views
0

LocationManagerを使用してログインしているユーザーのLatとLongを取得しようとしています。パーミッション画面を表示することができました。許可した後、私はテキストビューでLatとLongを見たいと思っています。 しかし、私はテキストビューで何も見ることができません。LocationManagerからLat Longを取得できません

protected void getLocation() { 
     Log.v(TAG, "GetLocation"); 
     int LOCATION_REFRESH_TIME = 1000; 
     int LOCATION_REFRESH_DISTANCE = 5; 

     if (!(checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)) { 
      Log.v("WEAVER_", "Has permission"); 
      mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE); 
      mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, LOCATION_REFRESH_TIME, 
        LOCATION_REFRESH_DISTANCE, mLocationListener); 

     } else { 
      Log.v("WEAVER_", "Does not have permission"); 
     } 

    } 

ここで、私はmLocationListenerを呼び出していますが、結果は得られません。 OnLocationChanged()メソッドが呼び出されていません。

private final LocationListener mLocationListener = new LocationListener() { 
     @Override 
     public void onLocationChanged(Location location) { 
      Log.v("WEAVER_", "Location Change"); 
      double latitude = location.getLatitude(); 
      textView.setText(String.valueOf(latitude) + "latitude"); 
      textView.setText(String.valueOf(updates) + " updates"); 
     } 

ここで、textViewには何も表示されず、ログは位置変更イベントで更新されません。

ログの結果は以下のとおりです。

08-21 14:35:29.336 3390-3390/daveytree.geo2 V/WEAVER_: GetLocation 
08-21 14:35:29.337 3390-3390/daveytree.geo2 V/WEAVER_: Has permission 
08-21 14:35:29.362 3390-3526/daveytree.geo2 D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true 

はこれをキャプチャする他のイベントがあります。助けてください

+0

チェックをお使いのデバイスは、飛行機の中である場合モードおよび/またはPOデバイス内の位置検出器が無効になっています。 – Vyacheslav

+0

LocationManagerは古いAndroid Location Frameworkの一部です(Google Playアプリを使用していて、すべて正常に動作しています)。詳細はhttps://developer.android.com/training/location/index.htmlをご覧ください。 – Krzysiek

答えて

2

このSO questionから、GPS_PROVIDERNETWORK_PROVIDERに変更できます。 GPS_PROVIDERは、衛星を使用して位置を決定するため、状況によっては、この提供者は場所の修正を返すまでに時間がかかる場合があります。

詳細については、あなたも、この関連のSOの質問を確認することができます。

関連する問題