废话不多说 直接新建一个新android项目:location,然后花一分钟申请一个key,然后就是把百度定位demo抄一下即可

1:首先在AndroidManifest.xml中加入权限

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" >

    </uses-permission>

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >

    </uses-permission>

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >

    </uses-permission>

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >

    </uses-permission>

    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >

    </uses-permission>

    <uses-permission android:name="android.permission.READ_PHONE_STATE" >

    </uses-permission>

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >

    </uses-permission>

    <uses-permission android:name="android.permission.INTERNET" />

    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" >

    </uses-permission>

    <uses-permission android:name="android.permission.READ_LOGS" >

    </uses-permission>

    <uses-permission android:name="android.permission.VIBRATE" />

    <uses-permission android:name="android.permission.WAKE_LOCK" />

    <uses-permission android:name="android.permission.WRITE_SETTINGS" />

2:在AndroidManifest.xml文件里使用自己写的Application 在application节点中加上一行代码

android:name="com.baidu.baidulocationdemo.LocationApplication"

3:在application节点上 复制例如以下内容

<service

            android:name="com.baidu.location.f"

            android:enabled="true"

            android:process=":remote" >

            <intent-filter>

                <action android:name="com.baidu.location.service_v2.2" >

                </action>

            </intent-filter>

        </service>

        <!-- meta-data须要写在application中 -->

        <meta-data

            android:name="com.baidu.lbsapi.API_KEY"

            android:value="xAxmR5WgrssC9ATV8gZOvq96" />

在这注意须要把换成自己申请的key

4:配置就算ok了,那么就写代码么,谁叫我们是码农呢? 首先看下自定义的类MyApplication.java

package com.example.location;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.Poi;
import android.app.Application;
import android.app.Service;
import android.os.Vibrator;
import android.util.Log;
import android.widget.TextView;
import java.util.List; public class MyApplication extends Application {
public LocationClient mLocationClient;
public MyLocationListener mMyLocationListener;
public TextView mLocationResult,logMsg;
public TextView trigger,exit;
public Vibrator mVibrator;
@Override
public void onCreate() {
super.onCreate();
mLocationClient = new LocationClient(this.getApplicationContext());
mMyLocationListener = new MyLocationListener();
mLocationClient.registerLocationListener(mMyLocationListener);
mVibrator =(Vibrator)getApplicationContext().getSystemService(Service.VIBRATOR_SERVICE);
} /**
* 实现实时位置回调监听
*/
public class MyLocationListener implements BDLocationListener {
@Override
public void onReceiveLocation(BDLocation location) {
StringBuffer sb = new StringBuffer(256);
sb.append("time : ");
sb.append(location.getTime());
sb.append("\nerror code : ");
sb.append(location.getLocType());
sb.append("\nlatitude : ");
sb.append(location.getLatitude());
sb.append("\nlontitude : ");
sb.append(location.getLongitude());
sb.append("\nradius : ");
sb.append(location.getRadius());
if (location.getLocType() == BDLocation.TypeGpsLocation){// GPS定位结果
sb.append("\nspeed : ");
sb.append(location.getSpeed());// 单位:公里每小时
sb.append("\nsatellite : ");
sb.append(location.getSatelliteNumber());
sb.append("\nheight : ");
sb.append(location.getAltitude());// 单位:米
sb.append("\ndirection : ");
sb.append(location.getDirection());
sb.append("\naddr : ");
sb.append(location.getAddrStr());
sb.append("\ndescribe : ");
sb.append("gps定位成功"); } else if (location.getLocType() == BDLocation.TypeNetWorkLocation){// 网络定位结果
sb.append("\naddr : ");
sb.append(location.getAddrStr());
//运营商信息
sb.append("\noperationers : ");
sb.append(location.getOperators());
sb.append("\ndescribe : ");
sb.append("网络定位成功");
} else if (location.getLocType() == BDLocation.TypeOffLineLocation) {// 离线定位结果
sb.append("\ndescribe : ");
sb.append("离线定位成功,离线定位结果也是有效的");
} else if (location.getLocType() == BDLocation.TypeServerError) {
sb.append("\ndescribe : ");
sb.append("服务端网络定位失败,能够反馈IMEI号和大体定位时间到loc-bugs@baidu.com,会有人追查原因");
} else if (location.getLocType() == BDLocation.TypeNetWorkException) {
sb.append("\ndescribe : ");
sb.append("网络不同导致定位失败,请检查网络是否通畅");
} else if (location.getLocType() == BDLocation.TypeCriteriaException) {
sb.append("\ndescribe : ");
sb.append("无法获取有效定位根据导致定位失败。通常是因为手机的原因。处于飞行模式下通常会造成这样的结果,能够试着重新启动手机");
}
sb.append("\nlocationdescribe : ");// 位置语义化信息
sb.append(location.getLocationDescribe());
List<Poi> list = location.getPoiList();// POI信息
if (list != null) {
sb.append("\npoilist size = : ");
sb.append(list.size());
for (Poi p : list) {
sb.append("\npoi= : ");
sb.append(p.getId() + " " + p.getName() + " " + p.getRank());
}
}
logMsg(sb.toString());
Log.i("BaiduLocationApiDem", sb.toString());
}
}
/**
* 显示请求字符串
* @param str
*/
public void logMsg(String str) {
try {
if (mLocationResult != null)
mLocationResult.setText(str);
} catch (Exception e) {
e.printStackTrace();
}
}
}

这里是直接从百度定位sdk demo中复制过来的,这个不须要去敲,由于它没啥技术和逻辑可言.

5:MainActivity.java

package com.example.location;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.location.LocationClientOption.LocationMode;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView; public class MainActivity extends Activity {
private TextView tv_locaiton_result;
private LocationClient mLocationClient;
private LocationMode tempMode = LocationMode.Hight_Accuracy;
private String tempcoor="gcj02";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mLocationClient = ((MyApplication)getApplication()).mLocationClient;
tv_locaiton_result = (TextView) findViewById(R.id.tv_locaiton_result);
((MyApplication)getApplication()).mLocationResult = tv_locaiton_result;
initLocation();
}
private void initLocation(){
LocationClientOption option = new LocationClientOption();
option.setLocationMode(tempMode);//可选,默认高精度,设置定位模式。高精度,低功耗,仅设备
option.setCoorType(tempcoor);//可选,默认gcj02。设置返回的定位结果坐标系,
int span=5000;
option.setScanSpan(span);//可选,默认0。即仅定位一次。设置发起定位请求的间隔须要大于等于1000ms才是有效的
option.setOpenGps(true);//可选,默认false,设置是否使用gps
option.setLocationNotify(true);//可选。默认false,设置是否当gps有效时依照1S1次频率输出GPS结果
option.setIgnoreKillProcess(true);//可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程。默认不杀死
option.setEnableSimulateGps(false);//可选,默认false。设置是否须要过滤gps仿真结果,默认须要
option.setIsNeedLocationDescribe(true);//可选。默认false,设置是否须要位置语义化结果,能够在BDLocation.getLocationDescribe里得到,结果相似于“在北京天安门附近”
option.setIsNeedLocationPoiList(true);//可选,默认false,设置是否须要POI结果,能够在BDLocation.getPoiList里得到
mLocationClient.setLocOption(option);
mLocationClient.start();
}
}

ok。定位就好了 只是这是定位获取到地址,地图上显示  下次弄

android 百度地图 定位功能的更多相关文章

  1. android 百度地图定位功能实现

    历经几天时间,终于把定位功能给实现了,可谓是费劲千辛万苦啊,有定位知识还有图层知识,在这里我把代码给大家贴出来,一起分享一下下啦. package com.example.foreveross.off ...

  2. Android 百度地图定位(手动+自动) 安卓开发教程

    近由于项目需要,研究了下百度地图定位,他们提供的实例基本都是用监听器实现自动定位的.我想实现一种效果:当用户进入UI时,不定位,用户需要定位的时候,自己手动点击按钮,再去定位当前位置.  经过2天研究 ...

  3. 我的Android进阶之旅------>Android百度地图定位SDK功能学习

    因为项目需求,需要使用百度地图的定位功能,因此去百度地图开发平台下载了百度地图的Android定位SDK最新版本的开发包和示例代码学习. Android 定位SDK地址:http://develope ...

  4. Android百度地图定位

    在谈到百度地图.如今,每个人都知道这个时候应该可以了吧.而更多的字不拉.直接朝话题. 访问百度地图api您必须应用key,应用在这里key不用说,有官方的文件说明如何应用上述key. 在这里,百度地图 ...

  5. 【MUI】百度地图定位功能

    博主最近进行一款APP开发,需要用到定位功能,经过一番折腾,终于搞定,不废话,代码如下 mui.plusReady(function() { var longitude, latitude; //va ...

  6. 利用HBuilder开发基于MUI的H5+ app中使用百度地图定位功能

    定位功能有两种方法: 首先要初始化内置地图: var map = new plus.maps.Map("map"); 这里黄色的map是html里面的id: <div id= ...

  7. android 百度地图定位开发2

    先下载了示例代码 进行配置(可查看开发 指南 Hello BaiDuMap) 第一步:创建并配置工程(具体方法参见工程配置部分的介绍): 第二步:在AndroidManifest中添加开发密钥.所需权 ...

  8. android 百度地图定位开发1

    首先注册成为百度开发者 然后进入百度开发者中心 点击LBS 跳到下一个页面 点击Android 开发 里面的基础地图 进入  点击获取密钥 进入   点击创建应用 进入     应用名称自己填 应用类 ...

  9. android百度地图定位开发

    一.activity import android.app.Activity; import android.graphics.Point;import android.graphics.PointF ...

随机推荐

  1. [Apple开发者帐户帮助]三、创建证书(6)创建创建VoIP服务证书

    VoIP:基于IP的语音传输(英语:Voice over Internet Protocol,缩写为VoIP)是一种语音通话技术,经由网际协议(IP)来达成语音通话与多媒体会议,也就是经由互联网来进行 ...

  2. springCloud多模块打包时报错问题

    执行mvn clean package spring-boot:repackage,报错如下: [ERROR] Failed to execute goal org.springframework.b ...

  3. 数据通讯与网络 第五版第24章 传输层协议-TCP协议部分要点

    上一博客记录了UDP协议的关键要点,这部分记录TCP协议的关键要点. 24.3 传输控制协议(TRANSMISSION CONTROL PROTOCOL) TCP(Transmission Contr ...

  4. MAC软连接

    在mac上不设置环境变量有的时候也可以直接就访问到了某些文件.这个是为什么呢?答案是用了软连接. 1 查看加载文件 可以使用cat命令查看paths文件 cat etc/paths /usr/loca ...

  5. spring事务回滚问题

    刚刚接到一个上家公司同事的一个电话,问我为什么service方法事务不会滚了,日志打印了,调用webservice报错. 我让他把这个调用执行webservice的方法截图发给我,如下:   publ ...

  6. angular js 公告墙

    <!DOCTYPE html>   <html lang="en">   <head>   <meta charset="UTF ...

  7. Android 解析XML—pull解析方式

    在Android中,常见的XML解析器分别为SAX解析器.DOM解析器和PULL解析器,其中PULL解析器小巧轻便,解析速度快,简单易用,非常适合在Android移动设备中使用,Android系统内部 ...

  8. Linux scp 后台运行传输文件

    Linux scp 设置nohup后台运行 1.正常执行scp命令 2.输入ctrl + z 暂停任务 3.bg将其放入后台 4.disown -h 将这个作业忽略HUP信号 5.测试会话中断,任务继 ...

  9. 彻底去除Google AdMob广告

    应用中包含广告是能够理解的,但经常造成用户误点,或者广告切换时造成下载流量,就有点让人不舒服了. 以下就以Google AdMob广告为例,看怎样彻底去除他. 先分析一下Google AdMob的工作 ...

  10. brew 安装的.net 运行时提示"Did you mean to run dotnet SDK commands?"

    原因未知,但有解决方案 使用 brew cask 安装的.NET Core brew cask install dotnet 结果运行时出现: 解决方案: 下载官方 .pkg 文件安装,顺便卸载掉 b ...