我想通过gps获取用户位置,这是我的代码
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
t=(TextView)findViewById(R.id.textView1);
LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocListener = new MyLocationListener();
mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
}
public class MyLocationListener implements LocationListener
{
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
double lat=location.getLatitude();
double longt= location.getLongitude();
Geocoder gc=new Geocoder(getApplicationContext(),Locale.getDefault());
try
{
List <Address> adresses=gc.getFromLocation(lat, longt, 1);
StringBuilder sb=new StringBuilder();
if(adresses.size()>0)
{
Address address=adresses.get(0);
for(int i=0;i<address.getMaxAddressLineIndex();i++)
sb.append(address.getAddressLine(i)).append("\n");
sb.append(address.getLocality()).append("\n");
sb.append(address.getPostalCode()).append("\n");
sb.append(address.getCountryName());
}
String a="Latitude:"+lat+"\nLongtitude:"+longt+"\nAddress:"+sb.toString();
t.setText(a);
}
catch(Exception e)
{
t.setText("Error.\n"+e.toString());
}
}
我给了所有权限;
平台是Android 2.2.3,设备是HTC Wildfire S
代码不会抛出错误,但它无法正常工作
有人有任何想法吗?
答案 0 :(得分:0)
您是否已通过免费应用或其他任何方式确认您应该已收到GPS位置?有时我没有得到30分钟,60分钟,2小时的定位...即使我之前在同一个地方有一个。在哪里,我从不在室内得到修复;但如果我在外面走动然后回到里面,我会得到一个解决方案。
您的代码在我的HTC上执行正常(在外面走后)。虽然这对现在没有任何影响,但我建议更改:
LocationListener mlocListener = new MyLocationListener();
为:
MyLocationListener mlocListener = new MyLocationListener();
因为你使MyLocationListener更复杂。