您的位置:首页 > 移动开发 > Android开发

Android进阶之利用百度地图定位获取当前城市

2015-11-07 09:03 1571 查看
1.导入百度地图sdk和定位sdk



2.需要用到的权限

<!-- 这个权限用于进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 这个权限用于访问GPS定位 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 获取运营商信息,用于支持提供运营商信息相关的接口 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!-- 用于读取手机当前的状态 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 访问网络,网络定位需要上网 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- SD卡读取权限,用户写入离线定位数据 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />


3.在清单文件里要加入一个服务。

//<application>里面
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote" >
</service>


4.代码如下

public class mainActivity extends Activity {

private TextView mTv = null;
public LocationClient mLocationClient = null;
public MyLocationListenner myListener = new MyLocationListenner();

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

mLocationClient = new LocationClient(this);
mLocationClient.registerLocationListener(myListener);
mTv = (TextView) findViewById(R.id.textview);
setLocationOption();
mLocationClient.start();
}

public class MyLocationListenner implements BDLocationListener {
@Override
public void onReceiveLocation(BDLocation location) {
mTv.setText(location.getCity());
}

@Override
public void onReceivePoi(BDLocation arg0) {
}
}

@Override
public void onDestroy() {
mLocationClient.stop();
super.onDestroy();
}

//设置相关参数
private void setLocationOption() {
LocationClientOption option = new LocationClientOption();
option.setOpenGps(true); //打开gps
option.setServiceName("com.baidu.location.service_v2.9");
option.setPoiExtraInfo(true);
option.setAddrType("all");
option.setPriority(LocationClientOption.NetWorkFirst);
option.setPriority(LocationClientOption.GpsFirst);       //gps
option.setPoiNumber(10);
option.disableCache(true);
mLocationClient.setLocOption(option);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android