- 我有一個安裝了Google Maps V2的Android應用程序,作爲其功能的一部分。
-
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
在我的清單,以及其他一切需要映射到工作。
- 我的應用程序不會在屏幕上顯示地圖。
現在的問題是,爲什麼我的手機(Galaxy Nexus,以防萬一)在應用程序啓動時在狀態欄右側開始顯示GPS圖標,但不是當我用地圖來到屏幕並開始使用它時?當我不在地圖屏幕上時,我不需要跟蹤我的位置並使用電池電量。
例如什麼是App messenger也會將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, 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);
}
我們可以看到主要活動的一些代碼嗎? – mithrop
@mithrop主要活動包含絕對沒有任何與谷歌地圖相關的東西,我真的沒有看到在那裏發生的事情。此外,該應用程序以啓動畫面開始(此時GPS圖標已顯示在狀態欄中),其中僅包含延遲1秒的主要活動的意圖。 – Makks129