博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Studio 中实现高德定位并获取相应信息
阅读量:7097 次
发布时间:2019-06-28

本文共 3098 字,大约阅读时间需要 10 分钟。

hot3.png

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获取请看博客  

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

AndroidManifest.xml中加入权限

<application>标签中添加Key值信息

 

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();        }    }}

运行效果如图:

 

转载于:https://my.oschina.net/zhangqie/blog/845488

你可能感兴趣的文章
lmbench andlmbench 移植测试
查看>>
三十天学不会TCP,UDP/IP网络编程-ARP -- 连接MAC和IP
查看>>
Linux操作系统下三种配置环境变量的方法
查看>>
转:序列化Python对象
查看>>
同步和异步的区别?
查看>>
Feeling after reading the blog of Agile development
查看>>
牛客网 Wannafly挑战赛 C 列一列 简单题 (题目有点坑)
查看>>
mysql 相同表求解统一字段不同内容的交集
查看>>
对js里bind函数的理解
查看>>
iOS 模态视图,视图之间的切换
查看>>
iptables
查看>>
.NET自动识别GB2312与UTF-8编码的文件
查看>>
Linux下apache日志分析与状态查看方法
查看>>
hdu2412(树形dp)
查看>>
js返回函数, 函数名后带多个括号的用法及join()的注意事项
查看>>
【NOIP2007】矩阵取数
查看>>
关于VIM在Win10下的无意义折腾
查看>>
ibatis example Class 使用
查看>>
android的触摸事件(转)
查看>>
springMVC与struts2的区别
查看>>