代码改变世界
直接上代码
package com.example.baidu;import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;public class MainActivity extends AppCompatActivity {private ImageView image;private TextView mTv = null;public LocationClient mLocationClient = null; //初始化LocationClient类public MyLocationListener myListener = new MyLocationListener();@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//在使用SDK各组件之前初始化context信息,传入ApplicationContext//声明LocationClient类mLocationClient = new LocationClient(getApplicationContext());mLocationClient.registerLocationListener(myListener); //注册监听函数image=(ImageView)findViewById(R.id.image); //初始化图片mTv = (TextView) findViewById(R.id.tv_loc_info); //初始化文本setLocationOption(); //定义setLocationOption()方法mLocationClient.start(); //执行定位}public class MyLocationListener implements BDLocationListener {@Overridepublic void onReceiveLocation(BDLocation location) {//将获取的City赋值给txt/***1.国家:location.getCountry()* 2.城市:location.getCity()* 3.区域(例:天河区):location.getDistrict()* 4.地点(例:风信路):location.getStreet()* 5.详细地址:location.getAddrStr()*/mTv.setText(location.getCity()+location.getDistrict()+location.getStreet());Toast.makeText(MainActivity.this,"网络定位成功"+location.getDirection(),Toast.LENGTH_LONG).show();}public void onReceivePoi(BDLocation arg0) {}}//执行onDestroy()方法,停止定位@Overridepublic void onDestroy() {mLocationClient.stop();super.onDestroy();}//设置相关参数private void setLocationOption() {LocationClientOption option = new LocationClientOption();option.setOpenGps(true); //打开gpsoption.setAddrType("all");//返回定位结果包含地址信息option.setPriority(LocationClientOption.NetWorkFirst); // 设置网络优先option.setPriority(LocationClientOption.GpsFirst); //gpsoption.disableCache(true);//禁止启用缓存定位mLocationClient.setLocOption(option);}}
AndroidManifest.xml
<!-- 这个权限用于进行网络定位--><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.READ_PHONE_STATE"></uses-permission><!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据--><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission><!-- 访问网络,网络定位需要上网--><uses-permission android:name="android.permission.INTERNET" /><!-- SD卡读取权限,用户写入离线定位数据--><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
其中BDLocation location
1.国家:location.getCountry()2.城市:location.getCity()3.区域(例:天河区):location.getDistrict()4.地点(例:风信路):location.getStreet()5.详细地址:location.getAddrStr()
可以定位国家 城市 区域 地点
详细地址就是所有包括国家的地址 例如:中国辽宁省大连市甘井子区任贤街