安卓网络定位

MainActivity
public class MainActivity extends AppCompatActivity {

    private TextView locationTv;
    LocationManager lm;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        locationTv = (TextView) findViewById(R.id.tv_location);

//        第一步:获得定位管理者对象
        lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

//        第二部:申请开启定位监听
//        NETWORK_PROVIDER  :粗略定位   GPS_PROVIDER  :精准定位
        lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10000, 200, listener);
    }

    //    第三部:创建LocationListener对象
    LocationListener listener = new LocationListener() {
        @Override
        public void onLocationChanged(Location location) {
//      当坐标位置发生改变时,会促发的方法,如果位置没有发生改变,此方法不会被促发。
            double longitude = location.getLongitude();  //经度
            double latitude = location.getLatitude();   //纬度
            long time = location.getTime();         //时间
            double altitude = location.getAltitude();  //海拔
            locationTv.setText("经度:"+longitude+",纬度:"+latitude+"\n时间:"+time+",海拔:"+altitude);
        }
        //     在定位可用,不可用,无服务三个状态切换时,会促发的方法
        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {

        }
        //      当定位开启时会触发的方法,比如GPS被打开了。
        @Override
        public void onProviderEnabled(String provider) {

        }
        //      当定位不能够使用时,会触发的方法,比如GPS被关闭了。
        @Override
        public void onProviderDisabled(String provider) {

        }
    };

    @Override
    protected void onDestroy() {
        super.onDestroy();
//        第四部:移除定位的服务
        lm.removeUpdates(listener);
    }
}
 
 
activity_main
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <TextView
        android:id="@+id/tv_location"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="TextView"
        android:textSize="20sp"/>
</RelativeLayout>

猜你喜欢

转载自blog.csdn.net/qq_41326326/article/details/78767558