美文网首页
【23】LBE

【23】LBE

作者: 嗟嗟嗟 | 来源:发表于2016-07-18 23:01 被阅读0次

    一、什么是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 -> 解除注册。

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

    相关文章

      网友评论

          本文标题:【23】LBE

          本文链接:https://www.haomeiwen.com/subject/xpkmjttx.html