Как уменьшить энергопотребление в приложении Android на основе определения местоположения? - PullRequest
3 голосов
/ 17 апреля 2010

Как я могу уменьшить энергопотребление в моем приложении? Какой код я могу использовать для реализации этого?

1 Ответ

8 голосов
/ 18 апреля 2010

Существует несколько различных способов уменьшить потребляемую мощность при попытке получить информацию о местоположении.

  1. Используйте последнее известное местоположение вместо попытки определить текущее местоположение.

    // Get a Location Manager
    LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    
    // Try to get the last GPS based location
    Location l = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
    
    // Fall back to cell tower based location if no prior GPS location
    if (l == null) {
        l = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
    }
    
  2. Воспользуйтесь менее дорогим провайдером местоположения. Вы можете выбрать LocationManager.NETWORK_PROVIDER напрямую или указать критерий , который вас интересует, и позволить Android сообщить вам, какого поставщика местоположения использовать.

    // Select the criteria you care about
    Criteria c = new Criteria();
    c.setAccuracy(Criteria.ACCURACY_COARSE);
    c.setPowerRequirement(Criteria.POWER_LOW);
    
    // Let the system tell you what provider you should use for your criteria
    LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    String p = lm.getBestProvider(c, true);
    
    // Call other Location Manager functions using the above provider...
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...