package baidumapsdk.demo;
import android.app.Application;
import android.content.Context;
import android.widget.Toast;
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.MKGeneralListener;
import com.baidu.mapapi.map.MKEvent;
/*
1.android.app.Application是android.content.Context的子类。
2.DemoApplication是Application的子类
3.DemoApplication类中重新实现了void onCreate()函数
4.onCreate()函数是程序启动是要做的:初始化BMapManager(地图引擎管理类)对象。
5.BMapManager(Context context)是这个类的构造函数。需要的参数是Context类对引用。
这里由于DemoApplication是Context的子类。所以可以将DemoApplication对象赋给这个引用。
6.public boolean init(String strKey,MKGeneralListener listener)
参数:
strKey - 申请的授权验证码
listener - 注册回调事件
上一步中有了BMapManager地图引擎管理对象,之后需要调用init(String strKey,MKGeneralListener listener)函数来初始化。
制定程序对应的key和监听类MKGeneralListener。
7.public interface MKGeneralListener
一般事件通知接口。
该接口返回网络状态,授权验证等结果,用户需要实现该接口以处理相应事件。要实现
void onGetNetworkState(int iError)
返回网络错误
void onGetPermissionState(int iError)
返回授权验证错误
*/
public class DemoApplication extends Application {
private static DemoApplication mInstance = null;
public boolean m_bKeyRight = true;
BMapManager mBMapManager = null;
public static final String strKey = "6942606aa6eeefa05f6cc1d8a69a9515";
/*
注意:为了给用户提供更安全的服务,Android SDK自v2.1.3版本开始采用了全新的Key验证体系。
因此,当您选择使用v2.1.3及之后版本的SDK时,需要到新的Key申请页面进行全新Key的申请,
申请及配置流程请参考开发指南的对应章节
*/
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
initEngineManager(this);
/*
* java.lang.Object
↳ android.content.Context
↳ android.content.ContextWrapper
↳ android.app.Application
*
* */
}
public void initEngineManager(Context context) {
if (mBMapManager == null) {
mBMapManager = new BMapManager(context);
}
if (!mBMapManager.init(strKey,new MyGeneralListener())) {
Toast.makeText(DemoApplication.getInstance().getApplicationContext(),
"BMapManager 初始化错误!", Toast.LENGTH_LONG).show();
}
}
public static DemoApplication getInstance() {
return mInstance;
}
// 常用事件监听,用来处理通常的网络错误,授权验证错误等
static class MyGeneralListener implements MKGeneralListener {
@Override
public void onGetNetworkState(int iError) {
if (iError == MKEvent.ERROR_NETWORK_CONNECT) {
Toast.makeText(DemoApplication.getInstance().getApplicationContext(), "您的网络出错啦!",
Toast.LENGTH_LONG).show();
}
else if (iError == MKEvent.ERROR_NETWORK_DATA) {
Toast.makeText(DemoApplication.getInstance().getApplicationContext(), "输入正确的检索条件!",
Toast.LENGTH_LONG).show();
}
// ...
}
@Override
public void onGetPermissionState(int iError) {
if (iError == MKEvent.ERROR_PERMISSION_DENIED) {
//授权Key错误:
Toast.makeText(DemoApplication.getInstance().getApplicationContext(),
"请在 DemoApplication.java文件输入正确的授权Key!", Toast.LENGTH_LONG).show();
DemoApplication.getInstance().m_bKeyRight = false;
}
}
}
}
DemoApplication类
最新推荐文章于 2022-12-04 22:46:42 发布