使用getLastKnownLocation()来获取location值为空的问题
private TextView positionTextView;
private LocationManager locationManager;
private String provider;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
positionTextView =(TextView)findViewById(R.id.position_text_view);
locationManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE);
//获取所有可用的位置提供器
List<String> providerList=locationManager.getProviders(true);
if(providerList.contains(LocationManager.GPS_PROVIDER))
{
provider=LocationManager.GPS_PROVIDER;
}
else if(providerList.contains(LocationManager.NETWORK_PROVIDER))
{
provider=LocationManager.NETWORK_PROVIDER;
}
else {
Toast.makeText(this,"No location provider to use",Toast.LENGTH_LONG).show();
return;
}
Location location=locationManager.getLastKnownLocation(provider);
if(location!=null)
{
//显示当前位置信息
showLocation(location);
}
else {
Toast.makeText(MainActivity.this,"Location为空",Toast.LENGTH_LONG).show();
}
locationManager.requestLocationUpdates(provider, 5000,1,locationListener);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
private void showLocation(Location location)
{
String currentPositionString="latitude is"+location.getLatitude()+"\n"+"longitude id"
+location.getLatitude();
positionTextView.setText(currentPositionString);
}
LocationListener locationListener =new LocationListener() {
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
showLocation(location);
}
};
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
if(locationManager!=null)
{
//移除监听
locationManager.removeUpdates(locationListener);
}
}
}
使用gps定位将定位后的信息显示在textview上 但是定位方法为gps的时候location的值为空使用网络定位时就好用
相关推荐
用Android Location获取当前地理位置的方法
本篇文章小编为大家介绍,用Android Location获取当前地理位置的方法。需要的朋友参考下
Android开发—通过Location获取Address
Android开发—通过Location获取Address,获取手机一些信息
Android打开GPS导航并获取位置信息返回null解决方案
最近在做一个 Android 项目,需要用到GPS获取位置信息,从 API 查了一下,发现获取位置信息仅需极其简单的一句即可getLastKnownLocation(LocationManager.GPS_PROVIDER)郁闷的是一直为null,于是搜集整理下,晒出来与大家分享
Android开发之Location用法实例分析
本文实例讲述了Android开发中Location用法。分享给大家供大家参考,具体如下: Location 在Android 开发中还是经常用到的,如通过经纬度获取天气,根据Location 获取所在地区详细Address (比如Google Map 开发)等。而在Android 中通过LocationManager来获取Location .通常获取Location 有GPS 获取,WIFI 获取。 这边介绍一个简单的小Demo ,来教大家如何获取Location ,从而获取经纬度。 第一步:创建一个Android 工程命名为LocationDemo . 第二步:修改main.xml 代码如下
Android获取位置信息的方法
本文实例为大家分享了Android获取位置信息的具体代码,供大家参考,具体内容如下 1.位置服务的简介:位置服务,英文翻译为Location-Based Services,缩写为LBS,又称为定位服务或基于位置的服务,融合了GPS定位、移动通信、导航等多种技术,提供与空间位置相关的综合应用服务,基于位置的服务发展很迅速,涉及商务、医疗、工作和生活的各个方面,为用户提供定位、追踪和敏感区域警告等一系列服务。比如谷歌地图,百度地图,都需要通过位置服务。 2.Android平台下支持提供位置服务的API,在开发过程中主要用到LocationManager和LocationProviders对象:



