【23】LBE

一、什么是LBS?

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

二、为什么要使用LBS?

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

三、如何使用?

申请权限

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

主应用代码


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<String> 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 -> 解除注册。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容