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(); } }