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
はこれをキャプチャする他のイベントがあります。助けてください
チェックをお使いのデバイスは、飛行機の中である場合モードおよび/またはPOデバイス内の位置検出器が無効になっています。 – Vyacheslav
LocationManagerは古いAndroid Location Frameworkの一部です(Google Playアプリを使用していて、すべて正常に動作しています)。詳細はhttps://developer.android.com/training/location/index.htmlをご覧ください。 – Krzysiek