Android LocationManager使用Internet数据

时间:2012-08-29 18:58:06

标签: android gps locationmanager

Android LocationManager在获取定位时有时会使用数兆字节的互联网数据吗?如果是这样,在什么情况下?即使使用LocationManager的应用程序没有明确的访问权限的权限,它是否会发生?

我问这个是因为我最近注意到“Android OS”使用的互联网数据(由我的Samsung Galaxy Note与Android 4.0.4上的“设置 - >数据使用”屏幕报告)有时是10兆字节或每天更多。实验表明,只有当我运行我编写的应用程序并使用位置管理器提供的GPS位置数据时才会出现此数据使用情况。当这个应用程序没有运行时,“Android OS”每天只使用几千字节的数据。

应用程序清单中的唯一权限是“android.permission.ACCESS_FINE_LOCATION”和“android.permission.WRITE_EXTERNAL_STORAGE”。没有互联网访问权限。

活动的onStart()方法包含代码:

         if (!mapview .ignoreGPS ) {
           lm.requestLocationUpdates(LocationManager. GPS_PROVIDER , gpsMinTime , gpsMinDistance , this );
    }     

当ignoreGPS标志关闭时,会调用类似的代码。

还有一个包含代码的gotoLastLocation()方法:

          Location l = lm.getLastKnownLocation(LocationManager. GPS_PROVIDER );

           if (l == null ) {
                 l = lm .getLastKnownLocation(LocationManager. NETWORK_PROVIDER);
          }

当ignoreGPS标志关闭或用户选择菜单选项转到最后一个已知位置时,此方法很少被调用。

除了这种很少被称为方法之外,没有对“NETWORK_PROVIDER”的引用。

GPS_PROVIDER默认使用“辅助GPS”吗?如果是这样,这可能会使用数兆字节的数据吗?即使没有互联网许可?

如果GPS_PROVIDER无法通过GPS信号进行修复,那么LocationManager默认使用手机网络吗?即使应用程序没有网络权限?这会被电话提供商视为互联网数据访问吗?

1 个答案:

答案 0 :(得分:1)

从来没有,下载辅助数据的SUPL协议仅使用几千字节的数据。即使你在白天运行它很多,与浏览器使用情况相比也不会太多。

使用NETWORK_PROVIDER时,Google有时会上传WiFi数据和应用程序使用情况(我知道这很令人毛骨悚然)。但即使这样也不多。

您可以尝试查杀所有后台进程或更好地卸载不需要的应用吗?

我最好的猜测是你可以使用下载地图图块和卫星图像的MapView - 这个数据很重