如何使用 Google 地图 API 在 Android 应用程序的 onPause 事件中获取坐标
How to use Google Maps API to get coordinates in applications's onPause event in Android
我正在开发一个 android 应用程序作为实时跟踪应用程序来获取进餐时间的位置更新。当 google 地图片段在屏幕上可见时,我可以获得坐标。但是当应用程序暂停时,我无法获得准确的位置。
我在暂停事件的主要 activity 中也包含了相同的代码 运行。
Sp 如何使用 Google 地图 API 并在应用程序处于暂停事件时更新地图以获得正确的坐标。
我发现当地图 activity 在屏幕上可见时,GPS 图标开始闪烁。通过闪烁获取 phone 的最新位置更新。但是当我要暂停应用程序时,GPS 图标的闪烁也会消失。
我所说的暂停事件的意思是 -> 通过按中间键或锁定 android phone 的屏幕将应用程序发送到 运行 个应用程序。
private void initilizeMap() {
googleMap.clear();
googleMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker").snippet("Snippet"));
googleMap.setMyLocationEnabled(true);
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
String provider = locationManager.getBestProvider(criteria, true);
Location myLocation = locationManager.getLastKnownLocation(provider);
String netstatus=null;
try
{
latitude = myLocation.getLatitude();
longitude=myLocation.getLongitude();
netstatus="success";
}
catch(Exception e)
{
showToastMessage("nogps",1000);
netstatus="error";
}
} protected void onPause()
{
super.onResume();
initilizeMap();
}
你需要像这样添加一个 LocationListener
LocationListener locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
Log.v("tag", "IN ON LOCATION CHANGE, lat=" + location.getLatitude() + ", lon=" + location.getLongitude());
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
};
并在 onPause()
方法中请求新坐标 locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
也不要忘记在您的清单中添加此权限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
我正在开发一个 android 应用程序作为实时跟踪应用程序来获取进餐时间的位置更新。当 google 地图片段在屏幕上可见时,我可以获得坐标。但是当应用程序暂停时,我无法获得准确的位置。 我在暂停事件的主要 activity 中也包含了相同的代码 运行。 Sp 如何使用 Google 地图 API 并在应用程序处于暂停事件时更新地图以获得正确的坐标。 我发现当地图 activity 在屏幕上可见时,GPS 图标开始闪烁。通过闪烁获取 phone 的最新位置更新。但是当我要暂停应用程序时,GPS 图标的闪烁也会消失。
我所说的暂停事件的意思是 -> 通过按中间键或锁定 android phone 的屏幕将应用程序发送到 运行 个应用程序。
private void initilizeMap() {
googleMap.clear();
googleMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker").snippet("Snippet"));
googleMap.setMyLocationEnabled(true);
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
String provider = locationManager.getBestProvider(criteria, true);
Location myLocation = locationManager.getLastKnownLocation(provider);
String netstatus=null;
try
{
latitude = myLocation.getLatitude();
longitude=myLocation.getLongitude();
netstatus="success";
}
catch(Exception e)
{
showToastMessage("nogps",1000);
netstatus="error";
}
} protected void onPause()
{
super.onResume();
initilizeMap();
}
你需要像这样添加一个 LocationListener
LocationListener locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
Log.v("tag", "IN ON LOCATION CHANGE, lat=" + location.getLatitude() + ", lon=" + location.getLongitude());
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
};
并在 onPause()
方法中请求新坐标 locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
也不要忘记在您的清单中添加此权限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />