Xamarin.Android 集成百度地图SDK
前言:趁着周六闲得没事干,赶紧搞一搞Xamarin,最近也是怪无聊的,枯燥的生活不如打几行代码带劲;好了我们进入正题
我这篇文章时参考一位大佬的博客进行改变的,当然他写的需要一定的经验才可以看得懂,我为了小白还是改编了一下,这篇文章的传送门
正文:
1.创建SDK
2.获取SHA1
3.项目集成
4.问题处理
首先呢,你要注册百度账号,我相信大家都应该有了,那么登录之后,点击控制台,其百度地图的官方地址:http://lbsyun.baidu.com/

如图所示;创建SDK是需要SHA1的,那我们如何获取呢,找到你安装Xamarin的位置,一般都是C盘Program Files\Java 要不然就是C:\Program Files (x86)\Java
获取sha1的相关步骤:
1.进去Java文件夹里面之后再进入bin文件夹,再之后你看看有没有keytool.exe文件,如何有的话就没有任何问题了。
2.找到debug.keystore文件,一般是 C:\Users\ **********\AppData\Local\Xamarin\Mono for Android文件夹,还是一样如果你有这个文件,那也就没有任何问题。
3.打开Cmd,最好还是通过管理员进去工具。
首先cd进去到你的keytool所在的文件夹bin中,输入命令 keytool.exe -list -v -keystore "%LocalAppData%\Xamarin\Mono for Android\debug.keystore" 输入密钥库口令: android 回车;
找到SHA1那一行复制,一定要复制成功啊,要不然还得操作一遍,关闭窗口,继续干。
还记得刚才的页面吗,写上你的SHA1,然后点击提交,就ok了。

百度地图SDK
打开界面http://lbsyun.baidu.com/index.php?title=androidsdk/sdkandev-download 去下载你的SDK(这个操作你需要去创建Xamarin binding 项目去生成你的dll)这个过程就是将Java的jar变成.net的dll
为简单考虑,这里就不写这个了,直接去下载生成好的dll去用吧,因为现在百度地图的sdk版本有点高,我这里实在是生成不通过,只能去用4.5版本的,如果大佬有通过5.5版本的请联系楼主!!必有重谢
附4.5版本的dll一份,将就着用吧。地址:链接:https://pan.baidu.com/s/1yb2a1dldI6DZpHTwQrARAQ 提取码:zjbz(这个链接永远有效)
把这个dll放到bin文件夹中,添加引用即可。

再之后你就需要去配置下AndroidManifest.xml文件了(这个文件放的还挺深的,在Properties文件夹中) 以下是文件初始定义:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1"
android:versionName="1.0"
package="App1.App1">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="27" />
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme">
</application>
</manifest>
还记得我们刚才生成的AK吗?如果你忘记保存,请自行寻找http://lbsyun.baidu.com/apiconsole/key
1.在其中添加开发密钥
<application>
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="开发者 key" />
</application>2.添加所需权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<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.GET_TASKS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
其完整定义如一下收缩代码:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1"
android:versionName="1.0"
package="App1.App1">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="27" />
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme">
<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="xxxxxxxxx" />
</application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<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.GET_TASKS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
</manifest>
在Main.xaml中添加地图控件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/activity_main"> <com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" /> </RelativeLayout>
在MainActivity.cs中初始化sdk,那么需要注意的是在SDK各功能组件使用之前都需要调用SDKInitializer.initialize(getApplicationContext());因此我们建议该方法放在Application的初始化方法中。
创建地图Activity,管理地图生命周期;这是以下代码的定义:
using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Com.Baidu.Mapapi;
using Com.Baidu.Mapapi.Map; namespace Android
{
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme.NoActionBar", MainLauncher = true)]
public class MainActivity : Activity
{
MapView mMapView = null; protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SDKInitializer.Initialize(ApplicationContext);
SetContentView(Resource.Layout.content_main);
mMapView = FindViewById<MapView>(Resource.Id.bmapView);
var s = mMapView.Map;
s.MapType = BaiduMap.MapTypeSatellite;
} protected override void OnDestroy()
{
base.OnDestroy();
mMapView.OnDestroy();
} protected override void OnResume()
{
base.OnResume();
mMapView.OnResume();
} protected override void OnPause()
{
base.OnPause(); mMapView.OnPause();
}
}
}
那么最后最后一个步骤就是把你的包名改变以下就欧克了

这就是基本的百度地图sdk集成过程,如果你有v5版本的生成dll经验,请联系我!!这几天出支付宝和微信的sdk集成。如果觉得这篇文章还算有用的话,点推荐吧兄台!!

上图就是结果,ok~就这样!
Xamarin.Android 集成百度地图SDK的更多相关文章
- xamarin.android 绑定百度地图SDK遇到的问题
在 xamarin.android 绑定项目中,绑定 百度地图的LBS地图SDK,参考 https://developer.xamarin.com/guides/android/advanced_to ...
- Android集成百度地图SDK
本Demo中所含功能 1:定位,显示当前位置 2:地图多覆盖物(地图描点.弹出该点的具体信息) 3:坐标地址互相换算 4:POI兴趣点检索 5:线路查询(步行,驾车,公交) 6:绘制线路(OpenGL ...
- Android Studio 项目中集成百度地图SDK报Native method not found: com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create:()I错误
Android Studio 项目中集成百度地图SDK报以下错误: java.lang.UnsatisfiedLinkError: Native method not found: com.baidu ...
- Android Studio集成百度地图SDK
1.建议先阅读百度地图官方的继承指南,针对了Eclipse和Android Studio. 百度官方集成指南 2.下载百度地图SDK Android SDK v4.1.1 下载有两种: 1.一键下载( ...
- Xamarin.Android 使用百度地图获取定位信息
最近做一个项目,web端使用百度地图,PDA使用手持机自带的GPS定位系统获取经纬度,然后再百度地图上显示该经纬度会有一定距离的差异,这里就像可乐的瓶子拧上雪碧的盖子,能拧的上却不美观.所以为了数据的 ...
- Android集成百度地图详细步骤和错误问题
先看要实现的效果 第一步, 下载SDK,基础配置,百度开发文档很详细,直接附上链接http://lbsyun.baidu.com/index.php?title=androidsdk/guide/cr ...
- android使用百度地图SDK获取定位信息
本文使用Android Studio开发. 获取定位信息相对简单.我们仅仅须要例如以下几步: 第一步,注冊百度账号,在百度地图开放平台新建应用.生成API_KEY.这些就不细说了,请前往这里:titl ...
- Xamarin.Android调用百度地图
下载百度地图API Android SDK 在Visual Studio中创建绑定库(Android)项目 将jar文件添加到Jars文件夹中 生成该项目,如果遇到变量名称之类的问题,可在Transf ...
- Android集成百度地图
1. 百度地图api Android定位SDK Android地图SDK Android地图SDK<------
随机推荐
- gulp 粗粗学习 记录下
看视频学习 粗粗记录下 以便以后学习 1.初记录 gulp.task //定义一个任务 gulp.src //锁定到做task任务的文件路径 gulp.dest //锁定到任务做完后文件去向的路径 g ...
- String.length()和String.getBytes().length
1.字符与字节 抛出如下代码: public static void main(String[] args) { String str = "活出自己范儿"; System.out ...
- php 设计模式(转)
PhpDesignPatterns [PHP 中的设计模式] 一. Introduction[介绍] 设计模式:提供了一种广泛的可重用的方式来解决我们日常编程中常常遇见的问题.设计模式并不一定就是一个 ...
- SQL Server Governer 控制资源的使用
--- Create a resource pool for production processing --- and set limits. USE master; GO CREATE R ...
- Android与ios 在input上的差异
input{ -webkit-appearance:none; }
- 自制vbs消息轰炸机
自制消息轰炸机 目标 做一个简单的,可以自己输入参数的vbs程序 准备 电脑qq 脚本设计成了可以指定发给某个好友轰炸的形式,在写好以后容错性比较强,但这意味着你想换人的话,需要重新改代码 vbs脚本 ...
- IOS开发中关于runtime的认识
首先要知道我们写的代码在程序运行过程中都会被转化成runtime的C代码执行. runtime突出的一点就是OC中消息传递机制的应用.objc_msgsend(target,SEL); 首先我们先看一 ...
- day03笔记
1.list操作stus = ['xiaohei','xiaobai','xiaohuang','cxdser'] #数组.list.array#增加stus.append('原宝')#在list末尾 ...
- JAVA---MYSQL 基本知识点 第二部分
增删改查 (CRUD): 数据库 , 表 , 记录 ; 约束 ; 主键约束 :primary key 如果是int类型 可以使用 自动增长型 auto_increment; 唯一约束 ...
- 把一下程序中的print()函数改写成
源代码: #include <iostream> using namespace std; void print( int w ) { ; i <= w ; i++ ) { ; j ...


