禁用Android设备上的蜂窝网络通信

禁用Android设备上的蜂窝网络通信,android,geolocation,Android,Geolocation,我正在为我的移动计算课写一篇研究论文,该论文将根据已知的调查等级GPS测量值,对GPS接收机、Wi-Fi三角测量和机器人仿生上的细胞塔三角测量的水平和垂直定位精度进行经验比较。为了实现这一点,我需要单独测试每种方法,而不是将它们结合起来确定位置。有没有办法以编程方式禁用网络连接?我已经查看了android.location包中的标准,但正如名称所示:“标准”。我在API文档中没有找到任何东西可以让我在确定地理位置时具体指定使用哪个提供商,也没有在谷歌搜索中找到任何算法 编辑:它是否像为中的以下方

我正在为我的移动计算课写一篇研究论文,该论文将根据已知的调查等级GPS测量值,对GPS接收机、Wi-Fi三角测量和机器人仿生上的细胞塔三角测量的水平和垂直定位精度进行经验比较。为了实现这一点,我需要单独测试每种方法,而不是将它们结合起来确定位置。有没有办法以编程方式禁用网络连接?我已经查看了android.location包中的标准,但正如名称所示:“标准”。我在API文档中没有找到任何东西可以让我在确定地理位置时具体指定使用哪个提供商,也没有在谷歌搜索中找到任何算法

编辑:它是否像为中的以下方法提供真值或假值那样简单


我想你能找到的最接近的是
LocationManager.GPS\u提供者
LocationManager.NETWORK\u提供者
或两者兼而有之。您可以将这些标志作为筛选器输入
LocationManager
requestLocationUpdates()

尝试实现
LocationListener
onProviderEnabled()
/
onProviderDisabled()
以查看是否可以在WiFi和蜂窝基站之间进行进一步过滤


编辑:您可以取出SIM卡,仅使用WiFi确定位置,反之亦然(禁用WiFi)强制使用发射塔。

从技术上讲,这不是以编程方式选择提供商,但在我的DROID X上,我可以执行以下步骤来禁用网络上的数据传输:

设置>电池和数据管理器>数据传送>数据启用/后台数据

我应该能够与LocationManager.NETWORK_提供商(希望还有DROID Bionic)一起使用这项技术来隔离蜂窝网络和WiFi。我会告诉你们的

更新

对于那些感兴趣的人来说,即使在我的论文完成之后,我也一直在对此进行长达数小时的研究。这还没有经过测试,但是从我从文档中收集到的信息,可以通过使用包中的类在网络提供者之间进行编程切换。此外,WiFi可以通过软件包中的类以更多方式进行操作

我还没有机会将这两种方法结合到同样使用android.location包的应用程序中。但是,我不认为在使用上述两个类的方法来切换所需的提供者时,合并一些功能是一种延伸。然后调用此方法时:

requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener) 

如果provider是变量,那么变量将自动假定预先切换的provider

似乎LocationManager.NETWORK_提供商“根据基站和WiFi接入点的可用性确定位置”。它还说它需要“android.permission.access_rough_location或android.permission.access_FINE_location”权限。这是否意味着其中一种权限类型,即接入位置,对应于蜂窝网络或Wi-Fi网络?我认为区分它们的唯一方法是使用标准。但是蜂窝网络或wi-fi网络都可以满足特定的标准,因此这不是一种无错误的方法。ACCESS\u FINE\u LOCATION意味着ACCESS\u Rough\u LOCATION,因此对于网络,如果您有ACCESS\u FINE\u LOCATION,则不需要另一个。此外,ACCESS_FINE_定位主要用于GPS定位。目前还没有明确的方法将WiFi与塔楼分开。细胞塔三角测量需要操作员的合作。我在发布之前没有看到您的编辑,但这听起来像是一种更全面的证明技术。谢谢。如果可能的话,我想两个都接受。两者都是合法的解决方案。
requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener)