AndroidGPS定位问题,众所周知是一个蛮麻烦的问题.当初我是新手,现在我也是新手,也搞了我头大,网上搜索了很多的例子,一直处于僵持阶段,而现在终于搞定了,因为我现在只需要获取到经纬度就可以了,反正获取经纬度可以从我这篇文章中看看;上代码。
在AndroidManifest.xml中加入权限:
<uses-permission android:name="android.permission.ACCESSFINELOCATION"/>
<uses-permission android:name="android.permission.ACCESSCOARSELOCATION"/>
- package com.example.tt;
- import android.location.Location;
- import android.location.LocationListener;
- import android.location.LocationManager;
- import android.os.Bundle;
- import android.app.Activity;
- import android.content.Context;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.TextView;
- import android.widget.Toast;
- public class MainActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- Button button=(Button)findViewById(R.id.button1);
- button.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View arg0) {
- // TODO Auto-generated method stub
- String serviceString=Context.LOCATION_SERVICE;
- LocationManager locationManager=(LocationManager)getSystemService(serviceString);
- String provider=LocationManager.GPS_PROVIDER;
- Location location=locationManager.getLastKnownLocation(provider);
- getLocationInfo(location);
- locationManager.requestLocationUpdates(provider, 2000, 0, locationListener);
- }
- });
- }
- private void getLocationInfo(Location location) {
- String latLongInfo;
- TextView lo=(TextView)findViewById(R.id.textView1);
- if(location!=null){
- double lat=location.getLatitude();
- double lng=location.getLongitude();
- latLongInfo="Lat:"+lat+"\nLong:"+lng;
- lo.setText(latLongInfo);
- }else {
- latLongInfo="No location found";
- lo.setText(latLongInfo);
- }
- }
- private final 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) {
- getLocationInfo(null);
- }
- @Override
- public void onProviderDisabled(String provider) {
- getLocationInfo(null);
- }
- @Override
- public void onLocationChanged(Location location) {
- getLocationInfo(location);
- Toast.makeText(MainActivity.this, "位置改变了::::::::::::", 3000).show();
- }
- };
- }
当需要使用基站定位时,可以将String provider=LocationManager.GPS_PROVIDER;改为**String provider=LocationManager.NETWORK_PROVIDER;
**
具体如果还要判断GPS搜索不到时切换基站定位,那样的功能就不要我写了,新手都应该会.
还有就是如果用到Google定位到哪个城市地点什么的,也easy了。
以上就是我个人对AndroidGPS定位的理解和实现方法。