DemoApplication类

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;
            }
        }
    }
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值