DemoApplication类
来源:互联网 发布:中石化邮箱域名是什么 编辑:程序博客网 时间:2024/06/10 18:53
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; } } }}