java – 应用程序在应用程序启动时开始搜索GPS,而不是在需要时
发布时间:2020-12-14 05:39:09 所属栏目:Java 来源:网络整理
导读:我有一个 Android应用程序,其中包含Google Maps V2作为功能的一部分. 我有 uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/ 在我的清单中,以及地图工
>我有一个
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); … / _- (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |