【23】LBE

一、什么是LBS?

LBS是Location Based Service 的简称,即基于位置的服务,基于这种服务的应用的一种统称。

二、为什么要使用LBS?

LBS是一种被手机发扬光大的服务,因为手机的移动性,而产生了很多基于这种服务的应用,通过他可以有包括地图导航,周边信息,本地服务,旅游等多种应用。

三、如何使用?

申请权限



主应用代码


public class MainActivity extends AppCompatActivity {


    private LocationManager locationManager;
    private TextView textView;
    private String provider;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = (TextView) findViewById(R.id.main_text_view);

        //获取位置管理器
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

        //获取所有可用的位置提供器
        List providerList = locationManager.getProviders(true);
        if (providerList.contains(LocationManager.GPS_PROVIDER)) {
            provider = LocationManager.GPS_PROVIDER;
        } else if (providerList.contains(LocationManager.NETWORK_PROVIDER)) {
            provider = LocationManager.NETWORK_PROVIDER;
        } else {
            //没有提供器可用时弹出提示
            Toast.makeText(MainActivity.this, "No location provider to be use", Toast.LENGTH_SHORT).show();
            return;
        }


        Location location = locationManager.getLastKnownLocation(provider);

        if(location != null){
            showLocation(location);
        }

        locationManager.requestLocationUpdates(provider,5000,1,listener);
    }

    private void showLocation(Location location) {
        String currentPosition = "latitude is " + location.getLatitude() + "\n" + "longitude is " + location.getLongitude();
        textView.setText(currentPosition);

    }

    LocationListener listener = new LocationListener() {
        @Override
        public void onLocationChanged(Location location) {
            //更新设备位置信息
            showLocation(location);
        }

        @Override
        public void onStatusChanged(String s, int i, Bundle bundle) {

        }

        @Override
        public void onProviderEnabled(String s) {

        }

        @Override
        public void onProviderDisabled(String s) {

        }
    };
}
使用方法和传感器类似:

即获取位置管理器LocationManager -> 注册位置监听器 -> 通过GPS或网络 获取位置信息Location -> 解除注册。

其他应用参照各应用的接口文档

你可能感兴趣的:(【23】LBE)