我在获取用户的位置(我的位置)方面有问题。我的代码是

double lat;
double lng;
LocationManager locationManager;
String context = Context.LOCATION_SERVICE; 
locationManager = (LocationManager)getSystemService(context);
String provider = LocationManager.GPS_PROVIDER;
Location location = locationManager.getLastKnownLocation(provider);
if(!locationManager.isProviderEnabled(provider)){
 locationManager.setTestProviderEnabled(provider, true);
}
boolean enabled = locationManager.isProviderEnabled(provider);
if(enabled){
        Toast.makeText(LoginActivity.this,"provider enabled",Toast.LENGTH_LONG).show();
}
else{
    Toast.makeText(LoginActivity.this,"provider disabled",Toast.LENGTH_LONG).show();
}
if(location!=null){
  lat = location.getLatitude();
  lng = location.getLongitude();
  AlertDialog.Builder ab=new AlertDialog.Builder(LoginActivity.this);
  ab.setMessage(Html.fromHtml("<b><font color=#ff0000>Location" +"</font></b><br>"
            +location.toString()+"<br>Latitude: "+lat
                +"<br>Longitude "+lng));
  ab.setPositiveButton("ok",null );
  Toast.makeText(LoginActivity.this,"You are at     "+location.toString(),Toast.LENGTH_LONG).show();
}
else{
    Toast.makeText(LoginActivity.this,"Location not found",Toast.LENGTH_LONG).show();
} 

我的问题是我将位置作为 null 启用应用程序消息提供商。我在此代码中没有发现任何问题。我还在设备上测试了它,它表明启用了提供商,并且找不到位置。

我尚未在课堂上实现位置侦听器。是否有必要在我的班级中实现位置侦听器?

有帮助吗?

解决方案

您只从电话中获取最后一个已知位置。如果这是空的,如果没有最后一个已知位置,则您不会尝试以任何其他方式接收位置。

您应该在本指南中实现locationListener登记册以接收位置更新: http://developer.android.com/guide/topics/location/obtaining-user-location.html 这将导致手机尝试将用户位置获取并以位置对象的形式移交给您的应用程序。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top