解决方案 »
- 把平板最下方的那行statusbar隐藏
- myeclipse新建工程出错
- 怎么把Imageview的背景图片与R.drawable.img进行对比判断??
- 请教个问题:shell命令能否判断一个线程是否执行到了run()呢?
- android遍历界面上的所有控件后,如何判断控件是什么类型?
- 如何用代码实现两个radiobutton里面只能选一个?
- 软键盘显示格局的问题
- android获取gps时的一个问题
- apk能实现动态编译吗
- Expandablelistview 2层item嵌套一个type=decimal的edittetxt 点击软键盘的完成总是拉起一个26键的软键盘
- 我又心痒痒了,想学移动开发
- google code 上奇怪的 out of quota提示
因为getLastKnownLocation方法获取的是上一次已知的位置
但是你的apk运行的时候 从来没有获取位置数据 所以每次运行都获取不到数据 每次location都是为Null解决办法:使用new LocationListener()接口
locationManager.requestLocationUpdates(locationprovider, 2000, 2, listener); //注册监听位置改变
然后再 location=locationManager.getLastKnownLocation(locationprovider);
就可以获取数据了
LocationManager locationManager22 ;
String serviceName = BaiduActivity.LOCATION_SERVICE;
locationManager22 = (LocationManager)BaiduActivity.this.getSystemService(serviceName); // 查找到服务信息
String provider=LocationManager.GPS_PROVIDER; //指定用GPS查询服务
//设置监听器,自动更新的最小时间为间隔2秒或最小位移变化超过2米
locationManager22.requestLocationUpdates(provider, 2000, 2, ll);
try{
Location location1 = locationManager22.getLastKnownLocation(provider); // 通过GPS获取位置
int lng = (int) (location1.getLongitude() * 1E6);
Toast.makeText(this, lng, Toast.LENGTH_SHORT).show();
// center = new GeoPoint(lat, lng);
}
catch(Exception es)
{
Toast.makeText(this, "出现未知错误,获取当前位置不到", Toast.LENGTH_SHORT).show();
}
}
//创建位置监听器
// LocationListener
private LocationListener ll = new LocationListener(){
//位置发生改变时调用
public void onLocationChanged(Location location) {
center = new GeoPoint((int) (location.getLatitude() * 1e6),
(int) (location.getLongitude() * 1e6));
} //provider失效时调用
public void onProviderDisabled(String provider) {
Log.d("Location", "onProviderDisabled");
System.out.print("wwwww");
} //provider启用时调用
public void onProviderEnabled(String provider) {
Log.d("Location", "onProviderEnabled");
System.out.print("eeeee");
}
//状态改变时调用
public void onStatusChanged(String provider, int status, Bundle extras) {
Log.d("Location", "onStatusChanged");
System.out.print("rrrr");
}
};是这样吗?可是还是没用?是什么原因,我是刚接触的所以很笨。麻烦指点一下。
但是你的Location location1 = locationManager22.getLastKnownLocation(provider); // 通过GPS获取位置
只运行了一次 就是说 即使 public void onLocationChanged(Location location) {
center = new GeoPoint((int) (location.getLatitude() * 1e6),
(int) (location.getLongitude() * 1e6));
}
执行了之后 但是你的location1 还是为空的 所以获取不到数据
你可以在public void onLocationChanged(Location location) {
location1=location;
//然后再来显示你的位置
}