文档章节

导航

 易水寒521
发布于 2015/06/11 16:16
字数 752
阅读 86
收藏 1
点赞 0
评论 0

BNavigatorActivity

package com.baidu.navi.sdkdemo;
import android.app.Activity;
import android.content.res.Configuration;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import com.baidu.navisdk.BNaviModuleManager;
import com.baidu.navisdk.BaiduNaviManager;
import com.baidu.navisdk.comapi.mapcontrol.BNMapController;
import com.baidu.navisdk.comapi.routeplan.BNRoutePlaner;
import com.baidu.navisdk.comapi.tts.BNTTSPlayer;
import com.baidu.navisdk.comapi.tts.BNavigatorTTSPlayer;
import com.baidu.navisdk.comapi.tts.IBNTTSPlayerListener;
import com.baidu.navisdk.model.datastruct.LocData;
import com.baidu.navisdk.model.datastruct.SensorData;
import com.baidu.navisdk.ui.routeguide.BNavigator;
import com.baidu.navisdk.ui.routeguide.IBNavigatorListener;
import com.baidu.navisdk.ui.widget.RoutePlanObserver;
import com.baidu.navisdk.ui.widget.RoutePlanObserver.IJumpToDownloadListener;
import com.baidu.nplatform.comapi.map.MapGLSurfaceView;
public class BNavigatorActivity extends Activity{
 public void onCreate(Bundle savedInstanceState){
  super.onCreate(savedInstanceState);
  //创建NmapView
  if (Build.VERSION.SDK_INT < 14) {
            BaiduNaviManager.getInstance().destroyNMapView();
        }
  MapGLSurfaceView nMapView = BaiduNaviManager.getInstance().createNMapView(this);
  
  //创建导航视图
  View navigatorView = BNavigator.getInstance().init(BNavigatorActivity.this, getIntent().getExtras(), nMapView);
  //填充视图
  setContentView(navigatorView);
  BNavigator.getInstance().setListener(mBNavigatorListener);
  BNavigator.getInstance().startNav();
  
  // 初始化TTS. 开发者也可以使用独立TTS模块,不用使用导航SDK提供的TTS
  BNTTSPlayer.initPlayer();
  //设置TTS播放回调
  BNavigatorTTSPlayer.setTTSPlayerListener(new IBNTTSPlayerListener() {
            
            @Override
            public int playTTSText(String arg0, int arg1) {
             //开发者可以使用其他TTS的API
                return BNTTSPlayer.playTTSText(arg0, arg1);
            }
            
            @Override
            public void phoneHangUp() {
                //手机挂断
            }
            
            @Override
            public void phoneCalling() {
                //通话中
            }
            
            @Override
            public int getTTSState() {
             //开发者可以使用其他TTS的API,
                return BNTTSPlayer.getTTSState();
            }
        });
  
  BNRoutePlaner.getInstance().setObserver(new RoutePlanObserver(this, new IJumpToDownloadListener() {
   
   @Override
   public void onJumpToDownloadOfflineData() {
    // TODO Auto-generated method stub
    
   }
  }));
  
 }
 
 private IBNavigatorListener mBNavigatorListener = new IBNavigatorListener() {
        
        @Override
        public void onYawingRequestSuccess() {
            // TODO 偏航请求成功
            
        }
        
        @Override
        public void onYawingRequestStart() {
            // TODO 开始偏航请求
            
        }
        
        @Override
        public void onPageJump(int jumpTiming, Object arg) {
            // TODO 页面跳转回调
         if(IBNavigatorListener.PAGE_JUMP_WHEN_GUIDE_END == jumpTiming){
             finish();
         }else if(IBNavigatorListener.PAGE_JUMP_WHEN_ROUTE_PLAN_FAIL == jumpTiming){
          finish();
         }
        }
  @Override
  public void notifyGPSStatusData(int arg0) {
   // TODO Auto-generated method stub
   
  }
  @Override
  public void notifyLoacteData(LocData arg0) {
   // TODO Auto-generated method stub
   
  }
  @Override
  public void notifyNmeaData(String arg0) {
   // TODO Auto-generated method stub
   
  }
  @Override
  public void notifySensorData(SensorData arg0) {
   // TODO Auto-generated method stub
   
  }
  @Override
  public void notifyStartNav() {
   // TODO Auto-generated method stub
   BaiduNaviManager.getInstance().dismissWaitProgressDialog();
  }
  @Override
  public void notifyViewModeChanged(int arg0) {
   // TODO Auto-generated method stub
   
  }
        
    };
     
 @Override
    public void onResume() {
        BNavigator.getInstance().resume();
        super.onResume();
        BNMapController.getInstance().onResume();
    };
    @Override
    public void onPause() {
        BNavigator.getInstance().pause();
        super.onPause();
        BNMapController.getInstance().onPause();
    }
    
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
     BNavigator.getInstance().onConfigurationChanged(newConfig);
        super.onConfigurationChanged(newConfig);
    }
    
    public void onBackPressed(){
        BNavigator.getInstance().onBackPressed();
    }
    
    @Override
    public void onDestroy(){
     BNavigator.destory();
  BNRoutePlaner.getInstance().setObserver(null);
     super.onDestroy();
    }
}

DemoMainActivity

 package com.baidu.navi.sdkdemo;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.annotation.SuppressLint;
import android.app.ListActivity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.res.Configuration;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
import com.baidu.lbsapi.auth.LBSAuthManagerListener;
import com.baidu.navi.sdkdemo.R;
import com.baidu.navisdk.BNaviEngineManager.NaviEngineInitListener;
import com.baidu.navisdk.BaiduNaviManager;
import com.baidu.navisdk.util.verify.BNKeyVerifyListener;
public class DemoMainActivity extends ListActivity {
 /** SDK验证密钥 */
    private final static String ACCESS_KEY = "NX4p2vcBz1rq5SWGh6OSA2Ux";//"LVUOeu2yWl5uHwG6zewGwN0m";
 private static final String CATEGORY_SDK_DEMO = "android.intent.category.BAIDUNAVISDK_DEMO";
 //NX4p2vcBz1rq5SWGh6OSA2Ux sdkdemotest.keystore的sha1值
 private boolean mIsEngineInitSuccess = false;
 
 public void onCreate(Bundle saveInstance) {
  super.onCreate(saveInstance);
 
  setContentView(R.layout.activity_main);
  
  //初始化导航引擎
//  BaiduNaviManager.getInstance().initEngine(this, getSdcardDir(),
//          mNaviEngineInitListener, ACCESS_KEY, mKeyVerifyListener);
        BaiduNaviManager.getInstance().initEngine(this, getSdcardDir(),
                mNaviEngineInitListener, new LBSAuthManagerListener() {
                    @Override
                    public void onAuthResult(int status, String msg) {
                        String str = null;
                        if (0 == status) {
                            str = "key校验成功!";
                        } else {
                            str = "key校验失败, " + msg;
                        }
                        Toast.makeText(DemoMainActivity.this, str,
                                Toast.LENGTH_LONG).show();
                    }
                });
  //创建Demo视图
  initViews();
 }
 private String getSdcardDir() {
  if (Environment.getExternalStorageState().equalsIgnoreCase(
    Environment.MEDIA_MOUNTED)) {
   return Environment.getExternalStorageDirectory().toString();
  }
  return null;
 }
 private NaviEngineInitListener mNaviEngineInitListener = new NaviEngineInitListener() {
  public void engineInitSuccess() {
   mIsEngineInitSuccess = true;
  }
  public void engineInitStart() {
  }
  public void engineInitFail() {
  }
 };
 
    private BNKeyVerifyListener mKeyVerifyListener = new BNKeyVerifyListener() {
  
  @Override
  public void onVerifySucc() {
   // TODO Auto-generated method stub
   Toast.makeText(DemoMainActivity.this, "key校验成功", Toast.LENGTH_LONG).show();
  }
  
  @Override
  public void onVerifyFailed(int arg0, String arg1) {
   // TODO Auto-generated method stub
   Toast.makeText(DemoMainActivity.this, "key校验失败", Toast.LENGTH_LONG).show();
  }
 };
 private void initViews() {
  setListAdapter(new SimpleAdapter(this, getListData(),
    android.R.layout.simple_list_item_1, new String[] { "title" },
    new int[] { android.R.id.text1 }));
  getListView().setTextFilterEnabled(true);
 }
 private ArrayList<Map<String, Object>> getListData() {
  ArrayList<Map<String, Object>> maps = new ArrayList<Map<String, Object>>(
    0);
  Intent intent = new Intent(Intent.ACTION_MAIN, null);
  intent.addCategory(CATEGORY_SDK_DEMO);
  PackageManager pm = getPackageManager();
  List<ResolveInfo> resolveInfos = pm.queryIntentActivities(intent, 0);
  int size = resolveInfos.size();
  for (int i = 0; i < size; i++) {
   ResolveInfo info = resolveInfos.get(i);
   Map<String, Object> item = new HashMap<String, Object>(2);
   CharSequence labelSeq = info.loadLabel(pm);
   item.put("title", labelSeq != null ? labelSeq.toString()
     : info.activityInfo.name);
   item.put(
     "intent",
     activityIntent(
       info.activityInfo.applicationInfo.packageName,
       info.activityInfo.name));
   maps.add(item);
  }
  return maps;
 }
 private Intent activityIntent(String pkg, String componentName) {
  Intent result = new Intent();
  result.setClassName(pkg, componentName);
  return result;
 }
 @SuppressLint("ShowToast")
 @SuppressWarnings("unchecked")
 @Override
 protected void onListItemClick(ListView l, View v, int position, long id) {
  boolean isInitSuccess = BaiduNaviManager.getInstance().checkEngineStatus(getApplicationContext());
  if(!isInitSuccess){
   return ;
  }
  Map<String, Object> map = (Map<String, Object>) l
    .getItemAtPosition(position);
  Intent intent = (Intent) map.get("intent");
  startActivity(intent);
 }
 @Override
 public void onDestroy() {
  super.onDestroy();
 }
 @Override
 public void onBackPressed() {
  System.exit(0);
  android.os.Process.killProcess(android.os.Process.myUid());
 }
 @Override
 public void onConfigurationChanged(Configuration newConfig) {
  super.onConfigurationChanged(newConfig);
 }
 
 
}

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 129
码字总数 120077
作品 0
虹口

暂无相关文章

NFS介绍 NFS服务端安装配置 NFS配置选项

NFS介绍 NFS是Network File System的缩写;这个文件系统是基于网路层面,通过网络层面实现数据同步 NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导...

lyy549745 ⋅ 32分钟前 ⋅ 0

Spring AOP 源码分析 - 筛选合适的通知器

1.简介 从本篇文章开始,我将会对 Spring AOP 部分的源码进行分析。本文是 Spring AOP 源码分析系列文章的第二篇,本文主要分析 Spring AOP 是如何为目标 bean 筛选出合适的通知器(Advisor...

java高级架构牛人 ⋅ 55分钟前 ⋅ 0

HTML-标签手册

标签 描述 <!--...--> 定义注释。 <!DOCTYPE> 定义文档类型。 <a> 定义锚。超链接 <abbr> 定义缩写。 <acronym> 定义只取首字母的缩写。 <address> 定义文档作者或拥有者的联系信息。 <apple......

ZHAO_JH ⋅ 56分钟前 ⋅ 0

SylixOS在t_main中使用硬浮点方法

问题描述 在某些使用场景中,应用程序不使用动态加载的方式执行,而是跟随BSP在 t_main 线程中启动,此时应用代码是跟随 BSP 进行编译的。由于 BSP 默认使用软浮点,所以会导致应用代码中的浮...

zhywxyy ⋅ 今天 ⋅ 0

JsBridge原理分析

看了这个Github代码 https://github.com/lzyzsd/JsBridge,想起N年前比较火的Hybrid方案,想看看现在跨平台调用实现有什么新的实现方式。代码看下来之后发现确实有点独特之处,这里先把核心的...

Kingguary ⋅ 今天 ⋅ 0

Intellij IDEA神器常用技巧五-真正常用快捷键(收藏级)

如果你觉得前面几篇博文太啰嗦,下面是博主多年使用Intellij IDEA真正常用快捷键,建议收藏!!! sout,System.out.println()快捷键 fori,for循环快捷键 psvm,main方法快捷键 Alt+Home,导...

Mkeeper ⋅ 今天 ⋅ 0

Java 静态代码分析工具简要分析与使用

本文首先介绍了静态代码分析的基本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBugs,PMD,Jtest),最后从功能、特性等方面对它们进行分析和比较,...

Oo若离oO ⋅ 今天 ⋅ 0

SpringBoot自动配置小记

spring-boot项目的特色就在于它的自动配置,自动配置就是开箱即用的本源。 不过支持一个子项目的自动配置,往往比较复杂,无论是sping自己的项目,还是第三方的,都是如此。刚接触会有点乱乱...

大_于 ⋅ 今天 ⋅ 0

React jsx 中写更优雅、直观的条件运算符

在这篇文字中我学到了很多知识,同时结合工作中的一些经验也在思考一些东西。比如条件运算符 Conditional Operator condition ? expr_if_true : expr_if_false 在jsx中书写条件语句我们经常都...

开源中国最帅没有之一 ⋅ 今天 ⋅ 0

vim编辑模式与命令模式

5.5 进入编辑模式 从编辑模式返回一般模式“Esc” 5.6 vim命令模式 命令 :“nohl”=no high light 无高亮,取消内容中高亮标记 "x":保存退出,和wq的区别是,当进入一个文件未进行编辑时,使...

弓正 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部