已8个月未写博客,懒散至极,余有闲暇,写点心得,以备己用
在android乃至整个手机移动开发中,地图和定位永远都是主流开发中提及率和应用率比较高的技术应用,同时,很多地图api提供者们都把地图和定位做成2个独立的产品在推。
在中国地区,baidu map算是做得最出色的,app的渗透量大,上手也比较方便,当然更方便的还有(腾讯地图api),作为许多google粉和技术控来说,google maps 永远都是开发首选,下面我就android版的Google Maps API(以下简称gms)写下自己的一些心得:
gms 在android里有2个版本,官方是在力推v2版,v1版之前申请了key的用户可以继续使用,官方也继续支持原有的服务,但停止更新服务并停止申请v1的key,官方截图
接下来开始使用v2,首先先申请key,
进入Google APIs Console,找到左侧菜单栏的APIs,然后在右侧的Name列中找到 Google Maps Android API v2项并打开
打开后点APIs下方的Credentials项,然后在右侧找到CREATE NEW KEY按钮,点击
选择你要应用的开发环境,这里我们需要选择Android key,接下来是拼接申请格式串(sha1+分号+app包名)
方法有两种,一种是keytool,这里不介绍了,网上死多
第二种方法是adt22,打开eclipse,工具栏Window->Preferences->Android->Build
复制黏贴到对话框内,加上;com.xx.xxx(包名),点Create
如上图,创建成功,API key即你要的key
key申请好了,就要结合到项目中,v2版需要依赖Google Play Services SDK
在eclipse中,工具栏Window->Android SDK Manager, 找到如下图,进行安装
安装成功后,需要把sdk项目包import并使项目引用它,首先eclipse->File->Import->Android->Existing Android Code Into Workspace
Next,选择sdk路径,<android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib
Finish完成导入
引用该sdk需要右键点击自己的项目,选Properties,左菜单边选Android,然后在下面的Library里面Add刚才的google-play-services_lib。
这样,项目需要的内部包就引用完毕了,接着,向项目的配置文件AndroidManifest.xml中添加下列权限:
<permission
android:name="Your_FullPackage.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="Your_FullPackage.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
把申请的key添加到节点<application>里
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="API_KEY"/>
加入OpenGL ES,不然地图无法显示
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
添加ok后,转到项目资源文件XXX.xml,修改为
<?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"
android:name="com.google.android.gms.maps.MapFragment"/>
v2版是以MapFragment代替MapView,可以直接继承Activity,android sdk 12 及以上适用,以下需使用SupportMapFragment这个类
项目已经配置好了,run它,你会看到提示,分2种情况,一种是找不到google play 服务,一种是叫你更新google play 服务
v2版需要依赖google play services 和 google play store 这2个应用,以本人手机小米2a为例,手机刚入手的时候默认装的是稳定版,但自系统JBL15后就不可root,因为google play store需要作为系统应用才能打开,所以必须root,把系统刷成了开发版
开启root,就可以安装google play了!!!
网上能搜到很多安装的方法,但我觉得都太繁琐,我的方法是这样;
在手机助手里搜索google安装器,安装后打开
在root的情况下,它为你安装google服务框架和商店为系统应用,然后你另外在手动安装下最新版的google play services,就大功告成了
另:附上google maps 官方文档 https://developers.google.com/maps/documentation/android/