【Android】- 百度导航引擎初始化失败

百度导航引擎初始化失败的原因有如下几点需要注意:

1.manifest中权限是否添加正确,需要添加的权限有:

<!-- 手机震动权限 -->
<uses-permission android:name="android.permission.BODY_SENSORS"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCES_MOCK_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<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" />
<!-- SDK1.5需要android.permission.GET_TASKS权限判断本程序是否为当前运行的应用? -->
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<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 android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<!-- 摄影机 -->
<uses-permission android:name="android.permission.CAMERA" />

2.增加百度LBS密钥,将下面的key值修改为我们自己在LBS开放平台申请的AK。

<meta-data android:name="com.baidu.lbsapi.API_KEY"
    android:value="your key" />
3.定位用的service:

<service
    android:name="com.baidu.location.f"
    android:enabled="true"
    android:process=":remote" />
4.将我们下载的工具包中assets中的文件拷贝至我们自己项目assets目录中


5.将工具包中libs中jar包和so库拷贝至项目libs目录中,之后将Jar包添加进项目依赖库、并在build.gradle文件中android{}中添加

 sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
或把.jar包拷贝到libs目录下,.so文件拷贝到main文件夹下jniLibs文件夹下


6.初始化 在使用SDK前,应该先进行百度服务授权和引擎初始化。已经内置了tts播报功能,如果需要使用自己的tts来进行播报,需要传入对应tts回调。具体回调请参考demo:

private void initNavi() {

    // 申请权限
    if (android.os.Build.VERSION.SDK_INT >= 23) {

        if (!hasBasePhoneAuth()) {

            this.requestPermissions(authBaseArr, authBaseRequestCode);
            return;

        }
    }

    BaiduNaviManager.getInstance().init(this, mSDCardPath, APP_FOLDER_NAME, new BaiduNaviManager.NaviInitListener() {
        @Override
        public void onAuthResult(int status, String msg) {
            if (0 == status) {
                authinfo = "key校验成功!";
            } else {
                authinfo = "key校验失败, " + msg;
            }
            MainActivity.this.runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    Toast.makeText(MainActivity.this, authinfo, Toast.LENGTH_LONG).show();
                }
            });
        }

        public void initSuccess() {
            Toast.makeText(MainActivity.this, "百度导航引擎初始化成功", Toast.LENGTH_SHORT).show();
            hasInitSuccess = true;
            initSetting();
        }

        public void initStart() {
            Toast.makeText(MainActivity.this, "百度导航引擎初始化开始", Toast.LENGTH_SHORT).show();
        }

        public void initFailed() {
            Toast.makeText(MainActivity.this, "百度导航引擎初始化失败", Toast.LENGTH_SHORT).show();
        }

    }, null, ttsHandler, ttsPlayStateListener);

}
7.如果需要语音播报 需要在导航TTS平台中进行注册申请。注意此处的应用签名为MD5,AK为在LBS开发平台申请到的AK。MD5签名仅包含字母,不包含分号
申请成功出现以下图片:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值