Android网络提供商,SIM需要吗?

时间:2012-01-06 08:31:47

标签: android

将“NETWORK_PROVIDER”用于epad(zinglife)以获取该地点的纬度和经度。它只有wifi连接。没有SIM卡。如果我使用地理编码器,它也会获取位置名称。 总之,我需要SIM才能使用NETWORK_PROVIDER吗?

设备:epad(zinglife)Android操作系统

wi-fi:是的

互联网:是的

Sim:没有sim

代码示例:

lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0,0, this);

Location location=lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
geocoder = new Geocoder(this);
if(location!=null)
onLocationChanged(location);
 public void onLocationChanged(Location location) {
    try {
    List<Address> addresses geocoder.getFromLocation(location.getLatitude(),location.getLongitude(), 2); // <10>
    for (Address address : addresses) {
    tv.setText(address.getAddressLine(0));
    }

catch(Exception e){
e.printstacktrace;
}

3 个答案:

答案 0 :(得分:0)

您不需要SIM卡,并且您可以获得具有ACCESS_COARSE_LOCATION权限的位置。

答案 1 :(得分:0)

我有一个102sh(带有普通SIM卡的japan.softbank)和galaxy nexus(没有电话号码,只有数据传输受限SIM卡)。

我可以在102sh上通过getFromLocation获取我的地址,但我无法通过getFromLocation在galaxy nexus上获取我的地址。

所以我认为在使用getFromLocation时我们需要无限制的SIM卡。

答案 2 :(得分:0)

google documentation明确说明“Android的网络位置提供商使用手机信号塔和Wi-Fi信号确定用户位置......”这应该意味着它可以在没有SIM卡的情况下工作wifi被激活,周围的热点位于谷歌数据库中。

但....我在开发App时遇到了其中一个测试设备的位置问题(坐在柏林办公室,周围有10个热点)。唯一的区别是缺少SIM卡。在添加/删除SIM卡的一些实验后,我可以验证至少对Galaxy Nexus和Galaxy S3的行为。我感到震惊的是,这确实是真的。对每个人:你能重现这个吗?

locationManager.getProvider(LocationManager.NETWORK_PROVIDER).requiresCell()

在两台三星设备上都返回true。