首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

android获取GPS经纬度,全是按照书下的代码,但是编译没有有关问题,在模拟器下运行异常,大神啊

2012-07-31 
android获取GPS经纬度,全是按照书上的代码,但是编译没有问题,在模拟器上运行错误,大神求助啊……这是源代码p

android获取GPS经纬度,全是按照书上的代码,但是编译没有问题,在模拟器上运行错误,大神求助啊……
这是源代码
package walk.a;

import android.app.Activity;
import android.os.Bundle;
import android.app.Activity;
import android.os.Bundle;

//package org.crazyit.gps;

import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.EditText;
public class WalkActivity extends Activity
{
// 定义LocationManager对象
LocationManager locManager;
// 定义程序界面中的EditText组件
EditText show;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 获取程序界面上的EditText组件
show = (EditText) findViewById(R.id.show);
// 创建LocationManager对象
locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
// 从GPS获取最近的最近的定位信息
Location location = locManager.getLastKnownLocation(
LocationManager.GPS_PROVIDER);
// 使用location根据EditText的显示
updateView(location);
// 设置每3秒获取一次GPS的定位信息
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER 
, 3000, 8, new LocationListener()
{
@Override
public void onLocationChanged(Location location)
{
// 当GPS定位信息发生改变时,更新位置
updateView(location);
}

@Override
public void onProviderDisabled(String provider)
{
updateView(null);
}

@Override
public void onProviderEnabled(String provider)
{
// 当GPS LocationProvider可用时,更新位置
updateView(locManager
.getLastKnownLocation(provider));
}

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

// 更新EditText中显示的内容
public void updateView(Location newLocation)
{
if (newLocation != null)
{
StringBuilder sb = new StringBuilder();
sb.append("实时的位置信息:\n");
sb.append("经度:");
sb.append(newLocation.getLongitude());
sb.append("\n纬度:");
sb.append(newLocation.getLatitude());
sb.append("\n高度:");
sb.append(newLocation.getAltitude());
sb.append("\n速度:");
sb.append(newLocation.getSpeed());
sb.append("\n方向:");
sb.append(newLocation.getBearing());
show.setText(sb.toString());
}
else

// 如果传入的Location对象为空则清空EditText
show.setText("");
}
}
}
一点都没有改动,只是改了改类的名字,但是运行的时候,就是会报错,模拟器说意外停止,请重试。真心不知道到底哪里有错误……求大神……

[解决办法]

探讨

引用:
没发LOG,不知道哪知错了。

应该需要在manifest.xml里增加权限,这个需要联网的吧。

我加了一个<uses-permission android:name="android.ACCESS_FINE_LOCATION"/>
别的没加,不知道是不是这个的原因

[解决办法]
缺少权限
<uses-permission android:name="android.permission.INTERNET" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" > </uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >
</uses-permission>
都放进去试下
[解决办法]
探讨
缺少权限
<uses-permission android:name="android.permission.INTERNET" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" > </uses-permission>


<uses-permission a……

热点排行