Get the current position and use Baidu map display

According to Baidu prompt demo, the contents of its manifest.xml of reference from:

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.demobaidumaps"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="7"
        android:targetSdkVersion="10" />

    <application
        android:name="com.example.demobaidumaps.BaiduDemoApp"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="your key" />

        <activity
            android:name="com.example.demobaidumaps.MainActivity"
            android:configChanges="orientation|keyboardHidden"
            android:screenOrientation="portrait"
            android:label="BaiduMapSDKDemo" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        
        <service
            android:name="com.baidu.location.f"
            android:enabled="true"
            android:process=":remote" >
        </service>
    </application>

    <permission android:name="android.permission.BAIDU_LOCATION_SERVICE" >
    </permission>

    <uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE" >
    </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
    </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" >
    </uses-permission>
    <uses-permission android:name="android.permission.INTERNET" >
    </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" >
    </uses-permission>
    <!-- <uses-permission android:name="android.permission.WRITE_APN_SETTINGS"></uses-permission> -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >
    </uses-permission>
    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
    <uses-permission android:name="android.permission.WAKE_LOCK" >
    </uses-permission>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_GPS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <!-- SDK1.5需要android.permission.GET_TASKS权限判断本程序是否为当前运行的应用? -->
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.CAMERA" >
    </uses-permission>
    <uses-permission android:name="android.permission.RECORD_AUDIO" >
    </uses-permission>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
    </uses-permission>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <!-- 来电消音 -->
    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" >
    </uses-permission>
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

    <supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="false"
        android:resizeable="true"
        android:smallScreens="true" />

</manifest>
Global Application:

BaiduDemoApp.java:

package com.example.demobaidumaps;

import android.app.Application;

import com.baidu.mapapi.SDKInitializer;

public class BaiduDemoApp extends Application{
	
	
	
	public void onCreate(){
		super.onCreate();
		
		SDKInitializer.initialize(this);
//		setContentView(R.layout.activity_main);
	}

}
Get latitude and longitude and load map:

MainActivity.java:

package com.example.demobaidumaps;

import android.app.Activity;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;

import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BaiduMapOptions;
import com.baidu.mapapi.map.MapStatus;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.model.LatLng;

public class MainActivity extends Activity {
	MapView mMapView = null;
	private BaiduMap mBaiduMap;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		LocationManager manager = (LocationManager)getSystemService(LOCATION_SERVICE);
		manager.requestLocationUpdates(LocationManager.GPS_PROVIDER,10000,2,new LocationListener(){

			@Override
			public void onLocationChanged(Location arg0) {
				// TODO Auto-generated method stub
				
			}

			@Override
			public void onProviderDisabled(String arg0) {
				// TODO Auto-generated method stub
				
			}

			@Override
			public void onProviderEnabled(String arg0) {
				// TODO Auto-generated method stub
				
			}

			@Override
			public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
				// TODO Auto-generated method stub
				
			}
			
		});
		
		Location location = manager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
		LatLng p = null;
		if(location!=null){
			p = new LatLng(location.getLatitude(),location.getLongitude());
			mMapView = new MapView(this,
					new BaiduMapOptions().mapStatus(new MapStatus.Builder()
							.target(p).build()));
		}else{
			p = new LatLng(24.88,118.67);
			mMapView = mMapView = new MapView(this, new BaiduMapOptions());
		}
		
		//p = new LatLng(24.885845140427213,118.67264333192573);
		
		setContentView(mMapView);
		mBaiduMap = mMapView.getMap();
	}

	@Override
	protected void onDestroy() {
		super.onDestroy();
		// 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
		mMapView.onDestroy();
	}

	@Override
	protected void onResume() {
		super.onResume();
		// 在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
		mMapView.onResume();
	}

	@Override
	protected void onPause() {
		super.onPause();
		// 在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
		mMapView.onPause();
	}
}

another:

Baidu was originally a reference to the document helloworld Demo experiment:

That http://developer.baidu.com/map/index.php?title=androidsdk/guide/hellobaidumap

Found, mapView use when writing after the xml is loaded, the program will run error:

12-02 22:11:19.381: E/AndroidRuntime(1192): FATAL EXCEPTION: main
12-02 22:11:19.381: E/AndroidRuntime(1192): java.lang.NoClassDefFoundError: com.baidu.mapapi.SDKInitializer
12-02 22:11:19.381: E/AndroidRuntime(1192): 	at com.example.demobaidumaps.MainActivity.onCreate(MainActivity.java:27)
12-02 22:11:19.381: E/AndroidRuntime(1192): 	at android.app.Activity.performCreate(Activity.java:5008)
12-02 22:11:19.381: E/AndroidRuntime(1192): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
12-02 22:11:19.381: E/AndroidRuntime(1192): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
12-02 22:11:19.381: E/AndroidRuntime(1192): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
12-02 22:11:19.381: E/AndroidRuntime(1192): 	at android.app.ActivityThread.access$600(ActivityThread.java:130)
12-02 22:11:19.381: E/AndroidRuntime(1192): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
12-02 22:11:19.381: E/AndroidRuntime(1192): 	at android.os.Handler.dispatchMessage(Handler.java:99)
12-02 22:11:19.381: E/AndroidRuntime(1192): 	at android.os.Looper.loop(Looper.java:137)
12-02 22:11:19.381: E/AndroidRuntime(1192): 	at android.app.ActivityThread.main(ActivityThread.java:4745)
12-02 22:11:19.381: E/AndroidRuntime(1192): 	at java.lang.reflect.Method.invokeNative(Native Method)
12-02 22:11:19.381: E/AndroidRuntime(1192): 	at java.lang.reflect.Method.invoke(Method.java:511)
12-02 22:11:19.381: E/AndroidRuntime(1192): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
12-02 22:11:19.381: E/AndroidRuntime(1192): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
12-02 22:11:19.381: E/AndroidRuntime(1192): 	at dalvik.system.NativeStart.main(Native Method)

do not know why.

So, in the future development, will no longer refer to this method a.

Other people have encountered the same problem, you can use the code I used above.


Reproduced in: https: //my.oschina.net/u/2552902/blog/543880

Guess you like

Origin blog.csdn.net/weixin_34392906/article/details/92326971