(6)Xamarin.android google map v2

简介: 原文 Xamarin.android google map v2 Google Map v1已经在2013年的3月开始停止支持了,目前若要在你的Android手机上使用到Google Map,就必须要使用到Google Map v2的版本.在Xamarin要使用Google Map v2之前,必需要做的动作有下列几项: 从你计算机里的keystore里面查询个人的指纹凭证(SHA1)。

原文 Xamarin.android google map v2

Google Map v1已经在2013年的3月开始停止支持了,目前若要在你的Android手机上使用到Google Map,就必须要使用到Google Map v2的版本.在Xamarin要使用Google Map v2之前,必需要做的动作有下列几项:
  1. 从你计算机里的keystore里面查询个人的指纹凭证(SHA1)。
  2. 用SHA1指纹凭证到Google APIs网站申请key。
  3. 在Xamarin里的Android SDK Manager去安装Google Play services。
  4. 在Xamarin.Android项目中加入Google Play Services component。
    (原生的Android项目必须在这一步骤加入google-play-services_lib的Library。)
  5. 新建一个项目并且在AndroidManifest加入相关的权限设定。
  6. 在layout 画面的Main.axml 中加入地图控件

总结上述的步骤,在Android里面要使用Map这样的功能时,并不像IOS一样,只要拖拉一个MapView到你的Layout View就可以.所需要的步骤比较繁琐.这些步骤又可以被我们分为两大部份.要使用Google Map在你的装置上

  1. 首先你要先上Google APIs网站上去开启与Google Map相关的服务.
  2. 接着才到Xamarin.Android项目中进行所有需要的设定修改.

接下来我们就开始如何在Xamarin.Android项目里使用Google map的相关设定:

1. 取得你的SHA1指纹凭证

1.1在Xamarin环境中,当我们装好Xamarin.android后,我们要在底下的路径去取得你的SHA1指纹凭证。
指纹凭证被放置在debug.keystore里面,在Windows与OSX的存放路径不一样,请参考下列路径:
Windows - C:\Users\[USERNAME]\AppData\Local\Xamarin\Mono for Android\debug.keystore OSX - /Users/[USERNAME]/.local/share/Xamarin/Mono for Android/debug.keystore

1.2 开启终端机窗口,你可以直接输入底下指令来取得你的SHA1指纹凭证. 在[USERNAME]的部分必须要改成你的使用者名称。
keytool -list -v -keystore /Users/[USERNAME]/.local/share/
Xamarin/Mono\ for\ Android/ 
debug.keystore -alias androiddebugkey -storepass android -keypass android

指令执行成功后可以看到如下图的信息,其中SHA1算法后面有一串16进位的数值。这就你个人的指纹凭证,这部分是我们稍后在Google APIs网站上建立API Key会需要用到。

2. 建立你的Google API Project

2.1前往Google APIS网站去建立你的Google API( https://code.google.com/apis/console/ )

按下画面中的Create Project 按钮来建立一个Google API Project

2.2 建立好Google Project后,按下左边的Service的标签,接着在网页中间会秀出所有的Service.
2.3 拖动下拉Bar,找到Google Map Android API v2 的Service,把这个Service的Switch控件打开成ON.请参考下图:
到这边,我们就建立好Google project 与 Google Map Android API v2 服务.接下来我们来看看要如何建立一个API钥匙,这个钥匙是当Xamarin.Anaroid要去取用Google Service API时要被用来验证的Key.
3. 建立你的API钥匙
接下来这个步骤我们要建立Xamarin.Anaroid要去取用Google Service API时要被用来验证的Key.
3.1 按下左边API Access的标签.
3.2 再接下来的画面中点选Create new Android Key来建立相对应的钥匙

3.3 在建立钥匙的时候会需要刚刚在debug.keystore 里面的SHA1算法指纹凭证.

3.4 从计算机中复制你的SHA1算法,贴到Configure Android Key for Xamarin Google Map API Android v2 窗口里面。在你的SHA1指纹凭证后打上一个分号「;」接着输入你应用程序的package name. 新增完成后按下确定。
注:你的应用程序package name 是来自你在建立Android时,在AndroidManifest.xml档案里面所输入的 package name.这部分两边的设定若是不一样,或导致你的地图无法显示.

在上述程序代码中,我们透过Intent的GetStringExtra(“参数名称”)来取得字符串型别的参数。事实上还可以透过类似的方法取得不同型别的参数值。如下图所示:
3.5 这时可以看到被我们新增出来的Android API Key.到目前为止在Google APIs上的设定已经完成,接下来的就是要到Xamarin里头去建立使用Google map的Android App.
4. 建立使用Google Map 的Android Application
4.1 开启Xamarin,建立一个Android Application方案
4.2 开启Android SDK Manager 下载安装Google play Service.

4.3 Binding Google Play Services 
安装好Google Play Services后,接下来要在Xamarin.Android项目里面Binding Java binding library. 这边有两个方式来绑定:

  1. 使用 Google Play Services component
  2. 手动bind the Google Play Services client library,这个方法比较类似在eclipse中开发使用Google Map的方式

Google Play Services component是Xamarin帮我们简化的Binding Java binding library所需要做的步骤,只要引用这个组件,就可以很轻松的Binding Java binding library.所以在这部分我们选择使用Google Play Services component.

4.4 新增Google Play Services 组件 
展开你的Android Map项目,在Components文件夹按下鼠标右键,在弹出的窗口上点选 Get More Components…

4.5 搜寻并下载安装Google Play Services.
5. 设定Android Application项目
5.1 修改AndroidManifest.xml档案需要的权限 
开启专案中的AndroidManifest.xml档案,新增下方的Xaml档案权限。
在  package="com.xamarin.docs.android.mapsandlocationdemo2"与 <permission android:name="<PACKAGE NAME>.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> 
这两个地方要将package name修改成你的Package name.
5.2 接着修改在< meta-data android:name="com.google.android.maps.v2.API_KEY"android:value="YOUR_API_KEY" />
标签里面Key值.这个Key是刚刚在Google APIs里面建立的API Key。完整的修改请参照下方Xml档案:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="4.5"package="com.xamarin.docs.android.mapsandlocationdemo2" android:versionCode="6">
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="17" />
<!-- Google Maps for Android v2 requires OpenGL ES v2 -->
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
<!-- We need to be able to download map tiles and access Google Play Services-->
<uses-permission android:name="android.permission.INTERNET" />
<!-- Allow the application to access Google web-based services. -->
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<!-- Google Maps for Android v2 will cache map tiles on external storage -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- Google Maps for Android v2 needs this permission so that it may check the connection 
state as it must download data -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- Permission to receive remote notifications from Google Play Services -->
<!-- Notice here that we have the package name of our application as a prefix on the permissions. -->
<uses-permission android:name="<PACKAGE NAME>.permission.MAPS_RECEIVE" />
<permission android:name="<PACKAGE NAME>.permission.MAPS_RECEIVE" android:protectionLevel="signature" />
<!-- These are optional, but recommended. They will allow Maps to use the My Location provider. -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission >android:name="android.permission.ACCESS_FINE_LOCATION" />
<application android:label="@string/app_name">
<!-- Put your Google Maps V2 API Key here. -->
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="YOUR_API_KEY" />
</application>
</manifest>

5.3 新增一个MapFragment 地图控件 ,新增完成会看到底下的画面

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment" />

5.4 编译执行项目,可以看到MapFragment画面中地图被下载回来. 
注:要看到地图被加载,你的Android仿真器必须是要有支持Google Play service的版本。若是仿真器本身如果没有 支持Google Play service,那你的地图会无法显示.
 
目录
相关文章
|
9月前
|
IDE API 开发工具
Google I/O :Android Jetpack 最新变化(四)Compose
Google I/O :Android Jetpack 最新变化(四)Compose
266 0
|
9月前
Google Earth Engine(GEE)——从列表中少选所需要的数字不用map函数,还能如何实现?简单方法介绍
Google Earth Engine(GEE)——从列表中少选所需要的数字不用map函数,还能如何实现?简单方法介绍
59 0
|
9月前
|
Android开发
如何在Android真机上检测是否有Google Map add-on
如何在Android真机上检测是否有Google Map add-on
97 3
|
6月前
|
开发工具 Android开发
上架Google Play报错:For new apps, Android App Bundles must be signed with an RSA key.
上架Google Play报错:For new apps, Android App Bundles must be signed with an RSA key.
179 1
|
7月前
|
存储 数据库 Android开发
🔥Android Jetpack全解析!拥抱Google官方库,让你的开发之旅更加顺畅无阻!🚀
【7月更文挑战第28天】在Android开发中追求高效稳定的路径?Android Jetpack作为Google官方库集合,是你的理想选择。它包含多个独立又协同工作的库,覆盖UI到安全性等多个领域,旨在减少样板代码,提高开发效率与应用质量。Jetpack核心组件如LiveData、ViewModel、Room等简化了数据绑定、状态保存及数据库操作。引入Jetpack只需在`build.gradle`中添加依赖。例如,使用Room进行数据库操作变得异常简单,从定义实体到实现CRUD操作,一切尽在掌握之中。拥抱Jetpack,提升开发效率,构建高质量应用!
147 4
|
6月前
|
安全 Java Android开发
Android 14适配Google play截止时间临近,适配注意点和经验
本文介绍了Android 14带来的关键更新,包括性能优化、定制化体验、多语言支持、多媒体与图形增强等功能。此外,还强调了适配时的重要事项,如targetSdkVersion升级、前台服务类型声明、蓝牙权限变更等,以及安全性与用户体验方面的改进。开发者需按官方指南更新应用,以充分利用新特性并确保兼容性和安全性。
377 0
|
9月前
|
API Android开发
Google I/O :Android Jetpack 最新变化(三)UI
Google I/O :Android Jetpack 最新变化(三)UI
158 0
|
9月前
|
Shell
android2.3.4没有google map的真机上增加google map(原创)
android2.3.4没有google map的真机上增加google map(原创)
88 4
|
8月前
|
Shell Go 开发工具
How to decompile Google Android .apk file as readable dump【原创】
How to decompile Google Android .apk file as readable dump【原创】
48 0
|
9月前
|
安全 数据处理 Android开发
安卓隐私权政策和Google Play规范更新
【4月更文挑战第14天】谷歌针对安卓平台的隐私权政策和Google Play规范进行重要更新,强化用户隐私保护和安全标准。新政策强调最小化数据收集,要求开发者明确告知用户敏感数据用途,并限制不必要的后台数据处理。Google Play规范更新要求应用详述数据收集方式,增加安全审查机制,确保无恶意代码。开发者面临调整,但有机会提升应用安全标准,赢得用户信任。用户数据安全得到提升,移动生态系统将更健康、可持续。
191 1

热门文章

最新文章

  • 1
    知识蒸馏方法探究:Google Distilling Step-by-Step 论文深度分析
  • 2
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 3
    Android历史版本与APK文件结构
  • 4
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
  • 5
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
  • 6
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
  • 7
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 8
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 9
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 10
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件