3.7 第一个次个人作业3

TiWenzhuce

package com.example.tiwenzhuce;

import androidx.appcompat.app.AppCompatActivity;
import android.Manifest;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.baidu.location.BDAbstractLocationListener;
import com.baidu.location.BDLocation;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.SDKInitializer;
import com.tbruyelle.rxpermissions2.RxPermissions;

public class TiWenzhuce extends AppCompatActivity {
    private Button mBtnLo;
    private MyLocationListener myListener = new MyLocationListener();
    private LocationClient mLocationClient = null;
    private EditText text_main_address;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        SDKInitializer.initialize(getApplicationContext());
        setContentView(R.layout.activity_ti_wenzhuce);

        checkVersion();

        mBtnLo = findViewById(R.id.btn_lo_2);
        mBtnLo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(TiWenzhuce.this, "录入成功!", Toast.LENGTH_SHORT).show();
            }
        });
    }

    private void checkVersion() {
        if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){
            RxPermissions rxPermissions = new RxPermissions(this);
            rxPermissions.request(Manifest.permission.ACCESS_COARSE_LOCATION,
                    Manifest.permission.ACCESS_FINE_LOCATION,
                    Manifest.permission.READ_PHONE_STATE,
                    Manifest.permission.WRITE_EXTERNAL_STORAGE)
                    .subscribe(granted -> {
                        if (granted) {//申请成功
                            //发起连续定位请求
                        } else {//申请失败
                            Toast.makeText(TiWenzhuce.this,"权限未开启",Toast.LENGTH_SHORT).show();
                        }
                    });
        }
    }

    public class MyLocationListener extends BDAbstractLocationListener {

        @Override
        public void onReceiveLocation(BDLocation location) {
            String addr = location.getAddrStr();    //获取详细地址信息
            String country = location.getCountry();    //获取国家
            String province = location.getProvince();    //获取省份
            String city = location.getCity();    //获取城市
            String district = location.getDistrict();    //获取区县
            String street = location.getStreet();    //获取街道信息
            //String adcode = location.getAdCode();    //获取adcode
            //String town = location.getTown();    //获取乡镇信息
            mLocationClient.start();
            text_main_address = findViewById(R.id.main_address);
            text_main_address.setText(addr + country + province + city + district + street);
        }
    }

    public void autoAddress(View view) {
        mLocationClient = new LocationClient(getApplicationContext());
        //声明LocationClient类
        mLocationClient.registerLocationListener(myListener);
        LocationClientOption option = new LocationClientOption();
        option.setIsNeedAddress(true);
        option.setNeedNewVersionRgc(true);
        option.setAddrType("all"); //加上这个配置后才可以取到详细地址信息
        mLocationClient.setLocOption(option);
        //注册监听函数
        mLocationClient.start();
    }
}
原文地址:https://www.cnblogs.com/dty602511/p/14913575.html