标签:
Android Google Map v2具体解释:开发环境配置
——转载请注明出处:coder-pig
说到地图定位,如今越来越多的社交app都增加了地图和定位的功能模块,用户非常多的时候
也会用到这些东东,比方,到外面吃饭,次次吃饭前都要拍下照片发到朋友圈,定个位,然后发条说说,
炫耀一下自己今天吃了什么高大上的东东,炫耀和攀比心理我懂,只是,一次下班去吃饭,看到一妹子
吃饭,拍照+发朋友圈,足足用了大概20多分钟,我走的时候她还没開始吃...哎也是醉了。
当然,这也是说笑而已哈,每一个人有自己的兴趣爱好,只是真的不是必需拍那么久哈,
毕竟还是吃饭重要哈!
恩,有点偏题了,说回正题吧,本节要说的是Google Map v2开发环境的搭建,
眼下三款地图大户:google地图,百度地图,高德地图
各有各的有点咯,假设开发的应用主要在国内使用的话,建议使用后面的两个,由于天朝
的原因,google地图非常多时候是load不下来的!当然,FQ和代理能够解决问题,
可是没理由要用户的手机也装个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
④配置相关文件,完毕相关代码编写,执行调试得出结果!
好了,開始本节任务吧~
这一关的话有两个要打的boss:
打开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版本号旧!!! ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
由于天朝的原因,非常多国内鸡系统都是被阉割的,就是把与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; } }
!!!Mission Complete,关卡一完毕,请进入关卡二----->
本关是没有boss,是提炼前面boss爆出来的材料的~,材料:測试demo + google-play-service_lib包
!!!Mission Complete,关卡二完毕,请进入关卡三----->
寻找我们的顶级丹炉——使用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.mymapps:这里注意两个是用";"来拼接的!。别忘了。!
!
然后我们要提交给守护者,我们要做的装备是顶级丹炉(android版的Key),选中第三个:
守护者依据这串暗号在藏宝洞中进行查找:(自己把东西拷贝到以下)
Update后,就生成了顶级丹炉(Key),然后把丹炉交给了我们
顶级丹炉(Key)就这样拿到手了,我们要把这东西放好,万一到时候不见了,又要回来又一次做,非常麻烦的!
(自己复制Key保存到txt中咯!)
!!!Mission Complete,关卡三完毕,请进入关卡四----->
材料和丹炉都有了,接下来就要開始炼丹了!
只是在炼丹之前还要和我们的丹炉种下烙印(改动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); } }
丹成:
(效果图例如以下)
关于Android Google Map v2具体解释之:开发环境配置这节就说到这里,本节以炼丹路线来
形容开发环境配置搭建的流程哈,第一次尝试这样的风格来讲述,希望各位读者喜欢!
故事逻辑有点乱哈!
大家别太在意细节哈!下节会对google提供的api进行解析
写一些简单的使用小demo~敬请期待~
下班后再给出来哈!
Android Google Map v2具体解释:开发环境配置
标签:
原文地址:http://www.cnblogs.com/hrhguanli/p/4595150.html