【发布时间】:2016-11-22 04:13:16
【问题描述】:
我有一个问题,我需要获取某个特定时刻的纬度和经度,例如拍照。我得到了 Double 值,问题是它们总是 0。我没有收到任何异常,并且坐标已成功上传到 Firebase 数据库,但是当我在 JSON 中检查它们时,它们总是为零(我拍了 20 张照片)。
这是我的“位置”内容和上传到 Firebase 数据库的部分代码。
我的主要活动是这样的。
public class MainActivity extends AppCompatActivity implements LocationListener
与位置相关的全局变量
double latitude;
double longitude;
这在 onCreate() 内部:
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
String networkProvider = LocationManager.NETWORK_PROVIDER;
String gpsProvider = LocationManager.GPS_PROVIDER;
final Location location= new Location(networkProvider);
onLocationChanged(location);{
latitude=location.getLatitude();
longitude=location.getLongitude();
}
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
locationManager.requestLocationUpdates(gpsProvider, 5000, 10, this);
这在一个按钮 onClickListener() 中,也在 onCreate() 方法中。
//Insert coordinates to JSON Firebase database...
Coordinates coordinates = new Coordinates();
coordinates.setLatitude(location.getLatitude());
coordinates.setLongitude(location.getLongitude());
testReference.push().setValue(coordinates);
Toast.makeText(MainActivity.this, "Coordinates uploaded!", Toast.LENGTH_LONG).show();
我在 MainActivity 中也有这些方法:
@Override
public void onLocationChanged(Location location) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
【问题讨论】:
-
坐标如何成功上传到Firebase数据库。
标签: java android google-maps location latitude-longitude