Android Google Map v2具体解释:开发环境配置

                                      ——转载请注明出处:coder-pig

说在前面:

说到地图定位,如今越来越多的社交app都增加了地图和定位的功能模块,用户非常多的时候

也会用到这些东东,比方,到外面吃饭,次次吃饭前都要拍下照片发到朋友圈,定个位,然后发条说说,

炫耀一下自己今天吃了什么高大上的东东,炫耀和攀比心理我懂,只是,一次下班去吃饭,看到一妹子

吃饭,拍照+发朋友圈,足足用了大概20多分钟,我走的时候她还没開始吃...哎也是醉了。

当然,这也是说笑而已哈,每一个人有自己的兴趣爱好,只是真的不是必需拍那么久哈,

毕竟还是吃饭重要哈!

恩,有点偏题了,说回正题吧,本节要说的是Google Map v2开发环境的搭建,

眼下三款地图大户:google地图,百度地图,高德地图

各有各的有点咯,假设开发的应用主要在国内使用的话,建议使用后面的两个,由于天朝

的原因,google地图非常多时候是load不下来的!当然,翻墙和代理能够解决问题,

可是没理由要用户的手机也装个VPN代理软件把!由于下个星期開始小猪就要做地图

定位模块的东东了,而公司的用户是澳门和香港那边的,所以要用到谷歌地图,国内对于

Google Map使用的资料都是比較少的,全部小猪在学习的过程中会做下相关的笔记!

希望能够帮到各位后来人哈!

这节要做什么?

主线任务:写一个測试Demo,将谷歌地图显示到界面上!

关卡:
①通过Android SDK Manager  安装Google Play Service,同一时候布置手机或模拟器的环境!

         ②新建我们的測试Demo,然后导入google-play-services_lib的包,作为我们project的libray

         ③到https://code.google.com/apis/console/,依据SHA1和应用包名创建一个自己的key

         ④配置相关文件,完毕相关代码编写,执行调试得出结果!

好了,開始本节任务吧~

关卡一:配置Google Play Service

这一关的话有两个要打的boss:

关卡boss一:开发环境装Google Play Service



打开Android sdk Manager,然后下拉到以下能够看到这货,把他装上:

安装完成后,然后把这货作为project导入到我们的项目中,这货在:

sdk/extras/google/google_play_services/libproject/google-play-services_lib

找到后导入就可以,然后这货就安静地趟在project文件夹下了:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

任务失败解决方法:                                                                                           ~

这里的问题一般是sdk manager里的extras文件夹找不到Google Play Services:            ~

1.给墙了,改hosts或者vpn咯,假设能载入得了其它清单的话,那么就是第二个问题了         ~

2.sdk manager的版本号问题,预计是版本号旧,换个新版本号的sdk manager就能够了!          ~

   注意是sdk manager版本号旧!!!                                                                        ~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

关卡boss2:执行设置装Google Play Service和Google play store

由于天朝的原因,非常多国内鸡系统都是被阉割的,就是把与google有关的模块所有割掉了

所以假设google map的开发还是建议google原生rom的手机,当然你也能够自己刷个!

当然不刷也是能够的,只是针对不同的机型可能会出现各种各样的情况,这个读者自己纠结了!

对于阉割了的国产机,我们要使用google map开发的话,须要安装两个东东:

Google play services和Google play store的两个apk,这两个能够到手机市场下,通常都有的

笔者的就是360手机助手下的,一定要确定是最新的版本号哦!!!切记,不然后面载入的地图,什么

都没有的,连网格都出不来!!!安装完后,我们能够写个小程序来验证下Google Services是否可用!

自己创建个Androidproject,加个button,触发以下的方法:

//測试Google Service是否可用的方法
private void checkGooglePlayServices(){
int result = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
switch (result) {
case ConnectionResult.SUCCESS:
Toast.makeText(getApplicationContext(), "SUCCESS", Toast.LENGTH_SHORT).show();
break; case ConnectionResult.SERVICE_INVALID:
Toast.makeText(getApplicationContext(), "SERVICE_INVALID", Toast.LENGTH_SHORT).show();
GooglePlayServicesUtil.getErrorDialog(ConnectionResult.SERVICE_INVALID, this, 0).show();
break; case ConnectionResult.SERVICE_MISSING:
Toast.makeText(getApplicationContext(), "SERVICE_MISSING", Toast.LENGTH_SHORT).show();
GooglePlayServicesUtil.getErrorDialog(ConnectionResult.SERVICE_MISSING, this, 0).show();
break;
case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED:
Toast.makeText(getApplicationContext(), "SERVICE_VERSION_UPDATE_REQUIRED", Toast.LENGTH_SHORT).show();
GooglePlayServicesUtil.getErrorDialog(ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED, this, 0).show();
break;
case ConnectionResult.SERVICE_DISABLED:
Toast.makeText(getApplicationContext(), "SERVICE_DISABLED", Toast.LENGTH_SHORT).show();
GooglePlayServicesUtil.getErrorDialog(ConnectionResult.SERVICE_DISABLED, this, 0).show();
break;
}
}

提示Success就说明Google服务能够使用了!

!!!Mission Complete,关卡一完毕,请进入关卡二----->

关卡二:创建測试demo,导入google-play-services_lib包



本关是没有boss,是提炼前面boss爆出来的材料的~,材料:測试demo + google-play-service_lib包

1)将google-play-services_lib设为library,右键这货,properties

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY29kZXJfcGln/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

2)为測试demo,导入这个library,点击add,把library增加就可以:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY29kZXJfcGln/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

!!!Mission Complete,关卡二完毕,请进入关卡三----->                                  

关卡三:申请本机专用Key值

好了,材料都有了,接着就该去找丹炉了,本关我们要到一个神奇的洞窟:

寻找我们的顶级丹炉——使用google服务的Key

首先我们来到这个地址:https://code.google.com/apis/console/

有谷歌账号的话,直接登录,没有的话就注冊个咯!

第一次的话。须要创建项目。默认情况会创建一个叫做API Project的项目

然后界面例如以下(这个是旧版本号的,你也能够进新版本号的界面,随你,进去的时候能够选的)

接着我们要去洞窟的左边开启藏宝点大门的开关:

点击Services:勾选我们须要的服务:

大门已经打开,可是有一个守护者,他要我们给出相应的暗号,才会给我们丹炉(Key)

而这个暗号也是有规律的:"本机的SHA1码;应用的包名"

这个SHA1码有两种获取方式,命令行的就算了,这里用简单点的那种:

Ecplise点击工具栏->Preferences->Android->Build就能够看到了,我们把这段东西复制下来

为了防止我们打错应用的包名,我们能够到AndroidManifest.xml文件里复制下包名:

我们的暗号就拼好了:

44:FF:5E:EF:38:A5:D9:28:8F:E5:F0:F9:BD:6B:02:C3:4A:27:2C:D1;com.jay.example.mymap

ps:这里注意两个是用";"来拼接的!。别忘了。!

然后我们要提交给守护者,我们要做的装备是顶级丹炉(android版的Key),选中第三个:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY29kZXJfcGln/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

守护者依据这串暗号在藏宝洞中进行查找:(自己把东西拷贝到以下)



Update后,就生成了顶级丹炉(Key),然后把丹炉交给了我们

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY29kZXJfcGln/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

顶级丹炉(Key)就这样拿到手了,我们要把这东西放好,万一到时候不见了,又要回来又一次做,非常麻烦的!

(自己复制Key保存到txt中咯!)

!!!Mission Complete,关卡三完毕,请进入关卡四----->                                                    

关卡四:完毕測试Demo,显示地图

材料和丹炉都有了,接下来就要開始炼丹了!

只是在炼丹之前还要和我们的丹炉种下烙印(改动AndroidManifest.xml文件)

不然成不了丹!(使用不了Google Service)

烙印例如以下:

AndroidManifest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jay.example.mymap"
android:versionCode="1"
android:versionName="1.0" > <uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="17" /> <!--OpenGL ES V2特性支持-->
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" /> <!-- name是应用的包名.permission.MAPS_RECEIVE -->
<permission
android:name="com.jay.example.mymap.permission.MAPS_RECEIVE"
android:protectionLevel="signature" /> <!-- 这里事实上仅仅要写前面这8个权限就能够了,其它的看情况加咯~ -->
<uses-permission android:name="com.jay.example.mymap.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" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" > <!-- value改成你申请到的秘钥Key -->
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyCuRT1JkHjcH92R0wa8A026beqyvR_xisM"/> <!-- 这个我也不知道是什么,不写就会报错的了... -->
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" /> <activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application> </manifest>

接着就能够使用開始炼丹了

(布局文件的编写,class是必写的哦!)

activity_main.xml

<?

xml version="1.0" encoding="utf-8"?

>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="400dp"
class="com.google.android.gms.maps.MapFragment"/>
</LinearLayout>

凝丹:

(MainActivity.java的编写)

package com.jay.example.mymap;
import android.app.Activity;
import android.os.Bundle; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}

丹成:

(效果图例如以下)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY29kZXJfcGln/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

关于Android Google Map v2具体解释之:开发环境配置这节就说到这里,本节以炼丹路线来

形容开发环境配置搭建的流程哈,第一次尝试这样的风格来讲述,希望各位读者喜欢!

故事逻辑有点乱哈!

大家别太在意细节哈!下节会对google提供的api进行解析

写一些简单的使用小demo~敬请期待~

本节參考代码下载:

下班后再给出来哈!

Android Google Map v2具体解释:开发环境配置的更多相关文章

  1. (6)Xamarin.android google map v2

    原文 Xamarin.android google map v2 Google Map v1已经在2013年的3月开始停止支持了,目前若要在你的Android手机上使用到Google Map,就必须要 ...

  2. Eclipse+Tomcat+Axis2+ADT开发环境配置

    一.安装Eclipse和Tomcat 1.安装Eclipse: 2.解压缩安装apache-tomcat-6.0.41 3.tomcat配置环境变量(4个) TOMCAT_HOME     D:\An ...

  3. ArcGIS Runtime for Android开发教程V2.0(2)开发环境配置

    原文地址: ArcGIS Runtime for Android开发教程V2.0(2)开发环境配置 - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http://blog.c ...

  4. Google Android Studio Kotlin 开发环境配置

    Google 近日开发者大会宣布Kotlin成为Android开发的第一级语言,即Android官方开发语言,可见Google对Kotlin的重视,本文就介绍一下Android Studio下的Kot ...

  5. [Xamarin.Android] 如何使用Google Map V2 (转帖)

    Google Map v1已經在2013年的3月開始停止支援了,目前若要在你的Android手機上使用到Google Map,就必須要使用 到Google Map v2的版本.在Xamarin要使用G ...

  6. Ubuntu虚拟机+ROS+Android开发环境配置笔记

    Ubuntu虚拟机+ROS+Android开发环境配置笔记 虚拟机设置: 1.本地环境:Windows 7:VMWare:联网 2.虚拟环境 :Ubuntu 14.04. 比較稳定,且支持非常多ROS ...

  7. Android SDK 4.0.3 开发环境配置及运行

    最近又装了一次最新版本的ADK环境 目前最新版是Android SDK 4.0.3 本文的插图和文本虽然是Android2.2的 步骤都是一样的,如果安装的过程中遇到什么问题,可以留言,我会尽快回复! ...

  8. Unity3D Android手机开发环境配置

    Unity3D Android手机开发环境配置 Date:2014-01-01 07:09 1.配置eclipse环境:首先在官网下载安装包:http://developer.android.com/ ...

  9. Qt For Android 开发环境配置

    想了想,还是再写一篇关于Qt for Android开发环境配置的教程. 准备:Java jdk,Android sdk,Android adb,Android ndk,Android ant,Qt ...

随机推荐

  1. [Android学习笔记]Context简单理解

    一.Context是什么?上下文对象,可以理解为一个程序的运行的环境,从中可以获取当前程序的资源:getResources,getAssets 二.常见的Context有哪些?Application ...

  2. GitHub上最受欢迎的Android开源项目TOP20

    以下这些开源项目都是从GitHub上筛选的,我强烈推荐android程序源代码有时间的时候自己在上面淘淘,或许能发现自己须要的开源程序. 了解开源项目有两个优点: 1.借鉴代码,一般来说.火爆的开源项 ...

  3. 使用HashMap须要注意的事儿:不要暴露Map.entry给外部不可信代码Map.entrySet()

    Map/HashMap是java中一种非经常常使用的数据结构,一般我们在应用中做的事情就是调用put向容器写入数据或者是get从容器读取数据. Map.entrySet()这种方法返回了键值对的集合, ...

  4. POJ--3268--Silver Cow Party【SPFA+邻接表】

    题意:一些牛要去某一点參加聚会,然后再回到自己家,路是单向的,问花费时间最多的那头牛最少须要花费多长时间. 思路:从聚会地点返回,相当于是从某一点到其它各个点的最短路径.从牛的家中走到聚会地点,能够把 ...

  5. Android actionbar 搜索框

    就是实如今顶部这种搜索框. 一.这个搜索框是actionbar上的menu上的一个item.叫SearchView.我们能够先在menu选项里定义好: bmap_menu.xml: <?xml ...

  6. Routing 服务

    WCF Routing 服务 WCF4.0支持路由机制,通过RoutingService实现请求分发.拦截处理. 一.应用场景 1.暴露一个endpoint在外网,其余服务部署于内网: 2.请求分发, ...

  7. Java使用Socket传输文件遇到的问题

    1.写了一个socket传输文件的程序,发现传输过去文件有问题.找了一下午终于似乎找到了原因,记录下来警示一下: 接受文件的一端,向本地写文件之前使用Thread.sleep(time)休息一下就解决 ...

  8. 北京联通100M光纤宽带需邀请函 实际速率12MB/S - OFweek光通讯网

    [新提醒]随身wifi无法使用FAQ(不断更新中~~~~~~) - 使用问题 - 360官方论坛 undefined 北京联通100M光纤宽带需邀请函 实际速率12MB/S - OFweek光通讯网 ...

  9. MySQL在一台db服务器上面如何启动多个实例

    安装过程省略过,源码安装请参考http://write.blog.csdn.net/postlist/1609043/all 整理自己的文档,发现以前做的例子,share下,欢迎大家提出改进意见. 一 ...

  10. 可重入锁(good)

    可重入锁,也叫做递归锁,是指在一个线程中可以多次获取同一把锁,比如:一个线程在执行一个带锁的方法,该方法中又调用了另一个需要相同锁的方法,则该线程可以直接执行调用的方法[即可重入],而无需重新获得锁: ...