首页 > 系统 > Android > 正文

Android Studio 中实现高德定位并获取相应信息

2019-11-08 00:15:14
字体:
来源:转载
供稿:网友

Android开发项目时常常会遇到定位这个功能,所以写了这篇博客,今天主要讲的高德地图的定位并获取相应信息。

首先导入高德的jar包

选中jar包右键点击  Add As Library, 在build.fradle中看到如下代码 表示导包成功

compile files('libs/AMap_Location_V3.0.0_20160922.jar')

之后到高德申请key值,登录打开控制台 点击创建应用,如图:

填写相应信息,

名称,PackageName:项目的包名,至于SHA1安全码可以这样获取,可以 Window+R 打开控制台  输入cmd点击确定

之后在弹框中完成以下操作就可以看到SHA1安全码了

上图的密钥库口令默认的是:android        (注:输入口令是看不见的,输入完成Enter即可)

以上是测试版获取SHA1,发布版SHA1获取请看博客   Android Studio apk打包,keystore.jks文件生成,根据keystore密钥获取SHA1安全码 

输入完信息确定就可以看到key值了

AndroidManifest.xml中加入权限

 <uses-permission android:name="android.permission.INTERNET" />    <uses-permission android:name="android.permission.access_NETWORK_STATE" />    <!-- 定位 -->    <!-- 用于进行网络定位 -->    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" >    </uses-permission>    <!-- 用于访问GPS定位 -->    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >    </uses-permission>    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS">    </uses-permission><application>标签中添加Key值信息

<meta-data         android:name="com.amap.api.v2.apikey"         android:value="ad6c99f7853c8bdce5bd35c5d3cbee76" > </meta-data> <!-- 定位需要的服务 --> <service android:name="com.amap.api.location.APSService" > </service>

MainActivity.java

public class MainActivity extends AppCompatActivity implements AMapLocationListener {    PRivate AMapLocationClient locationClient = null;    private AMapLocationClientOption locationOption = null;    private TextView textView;    private String[] strMsg;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        textView = (TextView) findViewById(R.id.text_map);        Location();    }    @Override    public void onLocationChanged(AMapLocation loc) {        if (null != loc) {            Message msg = mHandler.obtainMessage();            msg.obj = loc;            msg.what = Utils.MSG_LOCATION_FINISH;            mHandler.sendMessage(msg);        }    }    Handler mHandler = new Handler() {        public void dispatchMessage(android.os.Message msg) {            switch (msg.what) {                //定位完成                case Utils.MSG_LOCATION_FINISH:                    String result = "";                    try {                        AMapLocation loc = (AMapLocation) msg.obj;                        result = Utils.getLocationStr(loc, 1);                        strMsg = result.split(",");                        Toast.makeText(MainActivity.this, "定位成功", Toast.LENGTH_LONG).show();                        textView.setText("地址:" + strMsg[0] + "/n" + "经    度:" + strMsg[1] + "/n" + "纬    度:" + strMsg[1]);                    } catch (Exception e) {                        Toast.makeText(MainActivity.this, "定位失败", Toast.LENGTH_LONG).show();                    }                    break;                default:                    break;            }        };    };    public void Location() {        // TODO Auto-generated method stub        try {            locationClient = new AMapLocationClient(this);            locationOption = new AMapLocationClientOption();            // 设置定位模式为低功耗模式            locationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Battery_Saving);            // 设置定位监听            locationClient.setLocationListener(this);            locationOption.setOnceLocation(true);//设置为单次定位            locationClient.setLocationOption(locationOption);// 设置定位参数            // 启动定位            locationClient.startLocation();            mHandler.sendEmptyMessage(Utils.MSG_LOCATION_START);        } catch (Exception e) {            Toast.makeText(MainActivity.this, "定位失败", Toast.LENGTH_LONG).show();        }    }}

运行效果如图:

源码点击下载


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表