如何使用“移动数据”停止Android GPS

时间:2012-09-09 21:24:50

标签: android gps

我的应用请求位置更新,“minTime”设置为2秒。当“移动数据”开启(在手机的设置中)并启用GPS时,应用程序使用“移动数据”,每小时5到10兆字节。这被记录在ICS“数据使用”屏幕中,作为“Android OS”的使用。

为了防止出现这种情况,我提供了未经批准的设置 - >“位置服务” - >“Google的位置服务”。这是指辅助GPS,还是更多的东西?无论是什么,它似乎对我的应用程序的互联网访问没有任何影响。

进一步确认是我的应用程序导致移动数据访问的GPS使用情况,我观察到状态栏上的互联网数据活动指示器显示当且仅当GPS指示符存在时的活动。

阻止此移动数据使用的唯一方法似乎是关闭“移动数据”,如果没有移动数据的支持,GPS准确性似乎几乎一样好。但是,关闭移动数据显然不能令人满意。

Manifest中唯一的权限是“android.permission.ACCESS_FINE_LOCATION”(和“android.permission.WRITE_EXTERNAL_STORAGE”),因此该应用没有明确的权限来使用互联网数据。

LocationManager代码是

    criteria.setAccuracy(Criteria.ACCURACY_FINE);
    criteria.setSpeedRequired(false);
    criteria.setAltitudeRequired(false);
    criteria.setBearingRequired(true);
    criteria.setCostAllowed(false);
    criteria.setPowerRequirement(Criteria.NO_REQUIREMENT);

    bestProvider = lm.getBestProvider(criteria, true);

    if (bestProvider != null) {
        lm.requestLocationUpdates(bestProvider, gpsMinTime, gpsMinDistance, this);

reference for LocationManager.getBestProvider

  

如果没有提供者符合标准,则放宽标准......请注意,在此过程中不会删除货币成本要求。

然而,尽管将setCostAllowed设置为false,但app仍会产生潜在的金钱成本。

我还可以做些什么来阻止该应用使用移动数据?

1 个答案:

答案 0 :(得分:0)

网络提供商通常包括各种非gps定位技术,例如AGPS,wifi和小区三角测量,或它们的任意组合。在某些设备上,它们是分开的。您还可以添加被动提供程序,它使用存储在其他应用程序中的位置。

无论如何,如果你不想使用internet / 3g,你需要在应用程序或最终用户中禁用此功能。

对于最终用户,默认情况下此功能处于关闭状态,如果他选择启用它,则会向他发出警告(而不是默认启用它的iphone)。