在Android应用程序里面调用第三方API服务,可以方便、快速地开发出我们想要的一些功能。由于某些众所周知的原因,现在Google的各种服务基本上被封锁了,因此我们以高德Map API为例,讲解如何调用第三方地图服务。

环境:windows 、Android Studio 1.5  、Android 4.0 以上版本手机

一 、 获取Map API Key

为了在应用程序中调用第三方高德Map服务,必须先获得第三方的API Key。

1.打开Android Studio ,新建一个普通APP工程名为MapTest;

2.找到该工程的数字证书的keystore的存储路径,一般来说,默认是在C:\Users\Administrator\.android目录下有个debug.keystore,用来调试APP的数字证书;

3.使用sun公司提供的keytool工具查看keystore的认证指纹,该工具包含在JDK的安装路径中(PS:如果在命令行运行keytool工具提示“找不到该命令”,说明还未在系统的PATH环境变量中添加JDK的安装路径,该路径的bin目录下包含了java.exe 、javac.exe以及keytool.exe工具)。在Android Studio 的terminal窗口,输入如下:keytool -list-v -keystore , 例如:keytool -list -v -keystore C:\Users\Administrator\.android\debug.keystore ,默认密码是android。



4.记住上图所示的SHA1对应的认证指纹,登录高德API网站:http://id.amap.com 如果你第一次使用,可以点击“立即免费注册”,过程很简单,注册完成后就拥有了一个高德开发者账号,并登录,进入控制台,点击“创建新应用”,填写申请key的信息,选择Android平台的sdk,填写的安全码即为上图获得的SHA1,输入应用的包名,最后点击“获取KEY” ,就可以为该应用程序获取一个API Key ,如下图所示::



二 、 获得API

现在我们获得了一个API Key ,接下来就很容易在应用程序中使用高德地图了。高德地图提供了一个MapView 组件,它继承了FrameLayout ,因此它的本质就是一个容器控件。所以我们可以直接将它添加到应用界面上。

1.下载高德地图sdk

登录http://lbs.amap.com/api/android-sdk/download,我们以高德3D地图为例,点击下载,得到:AMap3DMap_AMapSearch.zip



2.将下载的压缩包解压,将会得到两个文件夹:arm64-v8a 、armeabi 和一个jar包(AMap3DMap_4.1.3_AMapSearch_4.0.0_20170111.jar)。从名字上看,这个sdk包应该包含了我们APP里面需要的3D地图和搜索等基本服务,它们其实是一些库文件*.so,和java接口文件,像linux下面的封装好的c/c++库,我们在手机里运行应用程序时会用到这些库,用来操作到linux内核和硬件。这里不做过多介绍,毕竟Android并不像linux那样完全开源的。


3.将得到的jar包复制到Android应用程序的app/libs/目录下,然后在Android studio 工程中选中这个jar包,右键“Add As Library...” 将jar包添加到工程当中。



4. 在Android应用的app/src/main/目录下新建一个jniLibs子目录,将解压的arm64-v8a 、armeabi 文件夹复制到该目录下。


三、使用API

前面的步骤中已经将下载好的API放在了工程里面,接下来就可以使用它们了!

1.配置

打开AndroidManifest.xml,在文件的application单元里面添加一个 子单元 , 注意 android : value 填写自己申请得到的API Key

接着在该文件中添加如下应用权限设置 (地图SDK(包含其搜索功能)需要的基础权限):


2.使用MapView组件显示简单的地图界面

MapView组件与普通的Android组件区别不大,可以在content_main.xml 文件中如下设置:


接下来需要在Activity的生命周期内回调该MapView的生命周期的方法:

首先声明、定义MapView:


在onCreate方法中回调MapView的onCreate方法,初始化aMap对象,并定义和设置ToggleButton按键的监听方法(选择切换地图的显示模式):


在onResume方法中回调MapView的onResume方法 :


在onPause方法中回调MapView的onPause方法 :


onDestroy方法中回调MapView的onDestroy方法 :


 onSaveInstanceState方法中回调MapView的onSaveInstanceState方法,并传入outState参数:



3.安装,建议安装到真机测试,显示界面如下:





三、总结

可见,在自己的app中使用这些API是非常简单的。以上只是简单添加界面到APP里面,我们还可以根据高德的官方文档使用内部更多的定位、地址解析和反向地址解析的方法接口,可以更充分地利用它在Android平台开发出手机地图、车载导航等产品。

高德地图Android SDK文档:http://lbs.amap.com/api/android-sdk/guide/create-map/show-map


更多相关文章

  1. Android(安卓)取得应用程序的启动次数和运行时间等信息
  2. iOS Tableview侧滑删除和移动cell的实现
  3. 【 Android(安卓)】RecyclerView 使用方法总结
  4. Android-电量优化
  5. Android最佳性能实践(三)——高性能编码优化
  6. android 如何使用SAX解析XML
  7. 深入Android的消息机制源码详解~Handler,MessageQueue与Looper关
  8. Android热修复框架AndFix核心代码分析并改进
  9. Android(安卓)NDK编译带STL的 C/C++ 程序

随机推荐

  1. CTS bug排除
  2. Android开发者必知的开发资源
  3. Android封装SDK的使用
  4. Android OS4.2右靠齐的表示问题
  5. 在Android平台下失去的机会
  6. android jni 的编写二 (NDK 开发中动态注
  7. android 连接远程数据库
  8. Android最大方法数和解决方案
  9. 使得EditText失去焦点
  10. Android框架学习-5.设置(Settings)