微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

>我有一个 Android应用程序,其中包含Google Maps V2作为功能的一部分.
>我有
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

在我的清单中,以及地图工作所需的一切.
>我的应用程序不会在屏幕上显示地图.

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

例如,什么的应用程序信使也使用GPS作为其地图,但只有当您打开地图屏幕时才显示图标,而不是在第一个启动的活动上.

谷歌搜索几个小时,但一无所获.
任何帮助将不胜感激!

编辑:

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,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);

… / _-

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


应用场景 C端用户提交工单、工单创建完成之后、会发布一条工单创建完成的消息事件(异步消息)、MQ消费者收到消息之后、会通知各处理器处理该消息、各处理器处理完后都会发布一条将该工单写入搜索引擎的消息、最终该工单出现在搜索引擎、被工单处理人检索和处理。 事故异常体现 1、异常体现 从工单的流转记录发现、
线程类,设置有一个公共资源 package cn.org.chris.concurrent; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * @Descrip
Java中的数字(带有0前缀和字符串)
在Java 9中使用JLink的目的是什么?
Java Stream API Filter(过滤器)
在Java中找到正数和负数数组元素的数量
Java 9中JShell中的不同启动脚本是什么?
使用Java的位填充错误检测技术
java中string是什么
如何使用Java中的JSON-lib API将Map转换为JSON对象?