【问题标题】:Internet data usage by Android LocationManagerAndroid LocationManager 的互联网数据使用情况
【发布时间】:2012-08-29 18:58:05
【问题描述】:

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

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

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

Activity的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);
          }

只有在忽略 GPS 标志被关闭或用户选择菜单选项以转到最后一个已知位置时,才会很少调用此方法。

除了这个很少被调用的方法之外,没有提到“NETWORK_PROVIDER”。

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

如果 GPS_PROVIDER 无法从 GPS 信号中获得修复,LocationManager 是否默认使用手机网络?即使应用没有网络权限?这会被电话提供商算作互联网数据访问吗?

【问题讨论】:

  • This 可能与您的兴趣相关。
  • 感谢 Josh 的建议,但我看不到任何对我有帮助的东西。我错过了什么吗?我的应用没有访问互联网的权限,也没有请求明确的下载;但是它似乎消耗了数兆字节的数据......我认为这必须通过使用辅助 GPS。我的问题是如何防止或限制这种情况。

标签: android gps locationmanager


【解决方案1】:

不,从不,下载辅助数据的 SUPL 协议仅使用几千字节的数据。即使您在白天经常运行它,与浏览器使用量相比也不会太多。

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

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

我的最佳猜测是您可能正在使用 MapView 下载地图图块和卫星图像 - 这些数据很重

【讨论】:

  • 抱歉回复慢。我已经离开了。关于 SUPL:我的应用程序每 2 秒请求一次位置更新(以确保在地图上顺利更新显示),因此如果每个请求都使用 SUPL 协议,则互联网访问速度可能是每小时 60 x 30 x“几千字节”。这可能是答案吗?即使没有访问互联网的权限,是否使用 SUPL?重新后台进程:只有当我的应用程序运行时,什么样的进程才能访问互联网?重新映射图块:我的应用仅使用存储在设备上的图块。
猜你喜欢
  • 2017-07-18
  • 1970-01-01
  • 2023-03-21
  • 2017-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-06
相关资源
最近更新 更多