zoukankan      html  css  js  c++  java
  • 体温填报app2.0开发

    定位的实现。

    public LocationClient mLocationClient; //定位客户端
        TextView tv_positionText;  //显示定位信息控件

    定位(百度api)

    //如果没有定位权限,动态请求用户允许使用该权限
            if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
                ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);
            }else {
                requestLocation();
            }
     @Override
        public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
            switch (requestCode) {
                case 1:
                    if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {
                        Toast.makeText(this, "没有定位权限!", Toast.LENGTH_LONG).show();
                        finish();
                    } else {
                        requestLocation();
                    }
            }
        }
    
        private void requestLocation() {
            initLocation();  //初始化
            mLocationClient.start();  //开始定位
        }
        @Override
        protected void onDestroy() {
            super.onDestroy();
            mLocationClient.stop();
        }
    
        private void initLocation() {
            setContentView(R.layout.twtb);
            mLocationClient = new LocationClient(getApplicationContext());
            mLocationClient.registerLocationListener(new MyLocationListener());
            tv_positionText = findViewById(R.id.tv_positionText);
            //定位客户端操作
            LocationClientOption option = new LocationClientOption();
            //设置扫描时间间隔(单位:毫秒)
            option.setScanSpan(1000);
            //设置定位模式,三选一
            option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);
            /*option.setLocationMode(LocationClientOption.LocationMode.Battery_Saving);
            option.setLocationMode(LocationClientOption.LocationMode.Device_Sensors);*/
            //设置需要地址信息
            option.setIsNeedAddress(true);
            //保存定位参数
            mLocationClient.setLocOption(option);
        }
    
        class MyLocationListener implements BDLocationListener {
            @Override
            public void onReceiveLocation(BDLocation bdLocation) {
                StringBuffer currentPosition = new StringBuffer();
                currentPosition.append(bdLocation.getAddrStr());
                tv_positionText.setText(currentPosition);
            }
        }

    权限

     <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.baidumap"></manifest>
        <!-- 这个权限用于进行网络定位-->
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
        <!-- 这个权限用于访问GPS定位-->
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
        <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位-->
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
        <!-- 获取运营商信息,用于支持提供运营商信息相关的接口-->
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
        <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
        <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
        <!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据-->
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
        <!-- 访问网络,网络定位需要上网-->
        <uses-permission android:name="android.permission.INTERNET"></uses-permission>
  • 相关阅读:
    关于第一次作业表达式求导总结
    北航OO第一单元总结
    OO课程总结
    OO第三次博客
    OO第二次博客
    OO第一次博客
    OO第一单元总结——多项式求导
    [面向对象]电梯作业优化相关
    面向对象的程序设计-模块一课程总结
    OO第二单元总结——电梯
  • 原文地址:https://www.cnblogs.com/hfy717/p/14501711.html
Copyright © 2011-2022 走看看