gpt4 book ai didi

java - 应用程序在应用程序启动时开始搜索 GPS,而不是在需要时

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:37:50 25 4
gpt4 key购买 nike

  • 我有一个 Android 应用程序,其中包含 Google Maps V2 作为功能的一部分。
  • 我有

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

    在我的 list 中,以及 map 工作所需的一切。

  • 我的应用启动时没有在屏幕上显示 map 。

现在的问题是,为什么我的手机(Galaxy Nexus,以防万一)在应用程序启动时就开始在状态栏中显示 GPS 图标,但当我到达带有 map 的屏幕并开始使用它时却没有?当我不在 map 屏幕上时,我不需要跟踪我的位置和使用电池电源。

例如,What's App messenger 的 map 也使用 GPS,但该图标仅在您打开 map 屏幕时显示,而不是在启动的第一个 Activity 上显示。

用 Google 搜索了几个小时,但一无所获。任何帮助将不胜感激!

已编辑:

MapActivity 类

private LocationListener mLocationListener = new LocationListener() {
@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) {
}
};

@Override
public void onCreate(Bundle savedState) {
super.onCreate(savedState);
setContentView(R.layout.map_activity);

startGPS();
initMap();
mMapView = (MapView) findViewById(R.id.map_google_map);
mMapView.onCreate(null);
mGoogleMap = mMapView.getMap();
if (mGoogleMap != null) {
customizeGoogleMap();
loadAndFillMap();
}
}

private void startGPS() {
mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mLocationListener);
}

private void initMap() {
try {
MapsInitializer.initialize(this);
} catch (GooglePlayServicesNotAvailableException e) {
e.printStackTrace();
}
}

private void customizeGoogleMap() {
mGoogleMap.getUiSettings().setMyLocationButtonEnabled(true);
mGoogleMap.setMyLocationEnabled(true);
}

private void loadAndFillMap() {
new LoadAndFillMapTask().execute();
}

private class LoadAndFillMapTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
String address = Session.appData().getSelectedAddress();
mMapLocation = Api.getMapApi().getMapLocation(address);
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
fillMap();
}
}

private void fillMap() {
// filling Google Map with markers etc.
}

@Override
public void onDestroy() {
super.onDestroy();
if (mMapView != null) {
mMapView.onDestroy();
}
mLocationManager.removeUpdates(mLocationListener);
}

最佳答案

一段时间后,我们发现问题出在我们在项目中使用的 Flurry SDK 中......

默认情况下,Flurry 从应用程序启动时就开始报告位置。要关闭它,我们使用:

FlurryAgent.setReportLocation(false);

.../_-

关于java - 应用程序在应用程序启动时开始搜索 GPS,而不是在需要时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16912055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com