Android:通过蜂窝网络和WiFi进行位置检测

时间:2012-07-21 13:18:05

标签: android location android-wifi

我想构建一个使用cellular NetworkWiFi提供当前位置的应用。

我喜欢同时从两个提供商处获取位置,然后决定哪个提供商给我最好的。

现在我从网络

获取位置
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener locationlistenerforNetwork = new mylocationlistenerNetwork();
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationlistenerforNetwork);

private class mylocationlistenerNetwork implements LocationListener {
      @Override
      public void onLocationChanged(Location location) {
          if (location != null) {
          Log.d("LOCATION CHANGED", location.getLatitude() + " ");
          Log.d("LOCATION CHANGED", location.getLongitude() + " ");
          Toast.makeText(LocationActivity.this,"latitude: "+
              location.getLatitude() + "longitude: " + location.getLongitude()
              + " Provider:" + location.getProvider() + " Accuracy:" + location.getAccuracy(),
              Toast.LENGTH_LONG).show();

          }
      }
      @Override
      public void onProviderDisabled(String provider) {
      }
      @Override
      public void onProviderEnabled(String provider) {
      }
      @Override
      public void onStatusChanged(String provider, int status, Bundle extras) {}
      }

我还想要WiFi的位置。请帮忙。

1 个答案:

答案 0 :(得分:1)

请参阅LocationManager

有这些提供者:

来自docs:

  

public static final String NETWORK_PROVIDER

     

网络位置提供商的名称。此提供商确定   位置基于手机信号塔和WiFi接入点的可用性。   通过网络查找检索结果。需要其中之一   权限android.permission.ACCESS_COARSE_LOCATION或   android.permission.ACCESS_FINE_LOCATION。

WiFi没有单独的提供商。使用NETWORK_PROVIDER您确定的位置也基于WiFi接入点。