技术宅改变世界 技术宅改变世界

android studio 调用高德地图

in Dev read (711) 文章转载请注明来源!

1、下载sdk

http://lbs.amap.com/api/android-location-sdk/download/
选中 地图功能 导航功能 搜索功能 定位功能
选中3d地图
选中开发包,如有需要可以选择示例代码

2、android studio 创建新项目

跳过

3、添加jar包以及so库

将第一步下载下来的压缩文件夹解压,复制到app/libs目录
file-Project Structure-app-Dependencies,点击选择File dependency,选中刚刚加进来的xxx.jar文件。
打开build.gradle文件,添加下面配置。

    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }

4、注册高德开发者账号

注册账号-进入控制台-创建新应用-添加新api

  • key名称,任意
  • 服务平台,Android平台SDK
  • 发布版安全码:SHA1

回到android studio,选择build-Generate signed APK-Next-Create new,选择key store path路径,我放在桌面,打开终端,执行keytool -list -keystore ~/Desktop/mapDemo.jks其中~/Desktop/mapDemo.jks表示key store path路径,生成出

$ keytool -list -keystore ~/Desktop/mapDemo.jks
Enter keystore password:

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

mapdemo, Dec 17, 2016, PrivateKeyEntry,
Certificate fingerprint (SHA1): XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX

将XX:XX,输入到发布版安全码:SHA1中。

  • 调试版安全码SHA1

使用keytool -list -keystore ~/.android/debug.keystore生成。
密码直接回车。

  • Package

包名,如com.ghostcir.maptest

提交,保存key,在下一步中将用到。
扩展阅读http://lbs.amap.com/api/android-sdk/guide/creat-project/get-key/#key

5、添加权限、增加高德key

编辑AndroidManifest.xml,增加

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.ghostcir.maptest">

    ......

    <!--允许程序打开网络套接字-->
    <uses-permission android:name="android.permission.INTERNET" />
    <!--允许程序设置内置sd卡的写权限-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!--允许程序获取网络状态-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!--允许程序访问WiFi网络信息-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!--允许程序读写手机状态和身份-->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    ......
    <application
        ......
        <meta-data
            android:name="com.amap.api.v2.apikey"
            android:value="请输入您的用户Key"/>
        ......
    </application>

</manifest>

6、增加地图控件

找到app/src/main/res/layout/activity_main.xml,添加以下代码

<com.amap.api.maps.MapView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/map"></com.amap.api.maps.MapView>

找到app/src/main/src/java/com.ghostcir.maptest/MainActivity,配置以下代码

public class MainActivity extends AppCompatActivity {
    private MapView mapView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ......
        mapView = (MapView)(findViewById(R.id.map));
        mapView.onCreate(savedInstanceState);
    }
    ......
    @Override
    protected void onPause() {
        super.onPause();
        mapView.onPause();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mapView.onDestroy();
    }

    @Override
    protected void onStart() {
        super.onStart();

    }

    @Override
    protected void onRestart() {
        super.onRestart();
        //mapView.onR
    }

    @Override
    protected void onResume() {
        super.onResume();
        mapView.onResume();
    }

    @Override
    public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
        super.onSaveInstanceState(outState, outPersistentState);
        mapView.onSaveInstanceState(outState);
    }

    @Override
    protected void onStop() {
        super.onStop();
        //mapView.onSto
    }
}

7、执行注意

高德的so库中只有arm架构所以模拟器需要选择arm的。

android studio高德
发表新评论
博客已萌萌哒运行
© 2020 • Powered by Typecho • Theme for yotu
PREVIOUS NEXT
雷姆
拉姆