百度地图SDK使用-飞外

 uses-permission android:/  uses-permission android:/  uses-permission android:/  uses-permission android:/  uses-permission android:/  uses-permission android:/  uses-permission android:/  uses-permission android:/  uses-permission android:/  uses-permission android:/ 

在 application 标签中声明

 !--百度地图秘钥--  meta-data android: android: / 

 service android: android:enabled="true" android:process=":remote"  /service 

activity_main.xml 布局文件代码:

 ?xml version="1.0" encoding="utf-8"?  LinearLayout xmlns:andro android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"  com.baidu.mapapi.map.MapView android: android:layout_width="match_parent" android:layout_height="match_parent" android:clickable="true"/  /LinearLayout 
MainActivity
public class MainActivity extends AppCompatActivity { public LocationClient mLocationCLient; private MapView mapView; private BaiduMap baiduMap; private boolean isFirstLocate = true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mLocationCLient = new LocationClient(getApplicationContext()); mLocationCLient.registerLocationListener(new MyLocationListener()); SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main); mapView = (MapView) findViewById(R.id.bmapView); baiduMap = mapView.getMap();// 让我显示在地图上 baiduMap.setMyLocationEnabled(true); List String permissionList = new ArrayList (); if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest. permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { permissionList.add(Manifest.permission.ACCESS_FINE_LOCATION); if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest. permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { permissionList.add(Manifest.permission.READ_PHONE_STATE); if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest. permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { permissionList.add(Manifest.permission.WRITE_EXTERNAL_STORAGE); if (!permissionList.isEmpty()) { String[] permissions = permissionList.toArray(new String[permissionList.size()]); ActivityCompat.requestPermissions(MainActivity.this, permissions, 1); } else { requestLocation(); private void navigateTo(BDLocation location){ if (isFirstLocate){ LatLng ll=new LatLng(location.getLatitude(),location.getLongitude()); MapStatusUpdate update= MapStatusUpdateFactory.newLatLng(ll); baiduMap.animateMapStatus(update); update=MapStatusUpdateFactory.zoomTo(16f); baiduMap.animateMapStatus(update); isFirstLocate=false; MyLocationData.Builder locationBuilder=new MyLocationData.Builder(); locationBuilder.latitude(location.getLatitude()); locationBuilder.longitude(location.getLongitude()); MyLocationData locationData=locationBuilder.build(); baiduMap.setMyLocationData(locationData); private void requestLocation() { initLocation(); mLocationCLient.start(); private void initLocation() { LocationClientOption option = new LocationClientOption(); option.setScanSpan(1000); option.setIsNeedAddress(true); mLocationCLient.setLocOption(option); @Override protected void onResume() { super.onResume(); mapView.onResume(); @Override protected void onPause() { super.onPause(); mapView.onPause(); @Override protected void onDestroy() { super.onDestroy(); mLocationCLient.stop(); mapView.onDestroy(); baiduMap.setMyLocationEnabled(false); @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { switch (requestCode) { case 1: if (grantResults.length 0) { for (int result : grantResults) { if (result != PackageManager.PERMISSION_GRANTED) { Toast.makeText(this, "必须同意所有权限才能使用", Toast.LENGTH_SHORT).show(); finish(); return; requestLocation(); } else { Toast.makeText(this, "未知错误", Toast.LENGTH_SHORT).show(); finish(); break; default: public class MyLocationListener implements BDLocationListener { @Override public void onReceiveLocation(final BDLocation location) { if (location.getLocType()==BDLocation.TypeGpsLocation || location.getLocType()==BDLocation.TypeNetWorkLocation){ navigateTo(location);}