Android 百度定位SDKv4.2及6.0_百度定位实例_安卓定位实例
介绍
由于项目需要、前几天一直在研究百度定位的功能、通过不断的实践终于有结果了、不愿意独享
现在我把我的研究成果和大家分享一下、其实百度的 API 已经相当不错了
这之所以要写出来、一是自己做一个笔记、二是以方便一起朋友少走弯路
导入库文件
在相关下载最新的库文件、将liblocSDK4d.so文件拷贝到libs/armeabi目录下
将locSDK4.2.jar文件拷贝到工程的libs目录下、并在工程属性->Java Build Path->Libraries中选择“Add JARs”
选定locSDK4.2.jar、确定后返回、这样您就可以在程序中使用百度定位SDK了
设置AndroidManifest.xml
在application标签中声明service组件、每个app拥有自己单独的定位service
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote">
</service>
声明使用权限
<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" />
设置AcessKey
使用SDK4.2需要在Mainfest.xml设置Accesskey、设置有误会引起定位和地理围栏服务不能正常使用
必须进行Accesskey的正确设置、设置AccessKey、在application标签中加入
<!-- meta-data需要写在application中 -->
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="3yoD80PlKwMoP9yHHvmhS77k" />
使用基本定位功能
基本定位功能指的根据用户实际需求、返回用户当前位置的基础定位服务
包含GPS和网络定位(Wi-Fi和基站定位)功能、基本定位功能同时还支持结合定位结果的反地理编码功能
离线定位、位置提醒功能和地理围栏功能
package com.baidu.baidulocationdemo; import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.location.LocationClientOption.LocationMode; public class LocationActivity extends Activity{
private LocationClient mLocationClient;
private TextView LocationResult;
private Button startLocation;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.location);
mLocationClient = new LocationClient(this.getApplicationContext());
mLocationClient.registerLocationListener(new MyLocationListener()); LocationResult = (TextView)findViewById(R.id.textView1);
startLocation = (Button)findViewById(R.id.addfence);
startLocation.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
// TODO Auto-generated method stub
InitLocation(); if(startLocation.getText().equals(getString(R.string.startlocation))){
mLocationClient.start();
startLocation.setText(getString(R.string.stoplocation));
}else{
mLocationClient.stop();
startLocation.setText(getString(R.string.startlocation));
} }
}); } @Override
protected void onStop() {
// TODO Auto-generated method stub
mLocationClient.stop();
super.onStop();
} private void InitLocation(){
LocationClientOption option = new LocationClientOption();
option.setLocationMode(LocationMode.Hight_Accuracy);//设置定位模式
//option.setCoorType(tempcoor);//返回的定位结果是百度经纬度,默认值gcj02
int span=1000;
option.setScanSpan(span);//设置发起定位请求的间隔时间为5000ms
option.setIsNeedAddress(true);
mLocationClient.setLocOption(option);
} /**
* 实现实位回调监听
*/
public class MyLocationListener implements BDLocationListener { @Override
public void onReceiveLocation(BDLocation location) {
//Receive Location
StringBuffer sb = new StringBuffer(256);
sb.append("time : ");
sb.append(location.getTime());
sb.append("error code : ");
sb.append(location.getLocType());
sb.append("latitude : ");
sb.append(location.getLatitude());
sb.append("lontitude : ");
sb.append(location.getLongitude());
sb.append("radius : ");
sb.append(location.getRadius());
if (location.getLocType() == BDLocation.TypeGpsLocation){
sb.append("speed : ");
sb.append(location.getSpeed());
sb.append("satellite : ");
sb.append(location.getSatelliteNumber());
sb.append("direction : ");
sb.append("addr : ");
sb.append(location.getAddrStr());
sb.append(location.getDirection());
} else if (location.getLocType() == BDLocation.TypeNetWorkLocation){
sb.append("addr : ");
sb.append(location.getAddrStr());
//运营商信息
sb.append("operationers : ");
sb.append(location.getOperators());
}
LocationResult.setText(sb.toString());
Log.i("dwtedx", sb.toString());
}
}
}
到这里一个简单的百度定位demo就可以实现了、那么需要注意的是一定要在 libs 下面引入 armeabi/liblocSDK4d.so
若资源对你有帮助、扫描下方的二维码、关注DD博客微信公众号(ddblogs)吧
最后给贴上Demo的源代码、希望对大家有用、有兴趣的哥们可以下载看看
源代码下载链接: http://dwtedx.com/download.html?bdkey=s/1o689PBO 密码: m65a
若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力
想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)
或者你也可以关注我的新浪微博、了解DD博客的最新动态:http://weibo.com/dwtedx(推荐)
如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教
为保证及时回复、可以使用博客留言板给我留言: http://dwtedx.com/message_1.html
感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛
from:http://dwtedx.com/itshare_158.html
Android 百度定位SDKv4.2及6.0_百度定位实例_安卓定位实例的更多相关文章
- Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK
原文:Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.ne ...
- 小议安卓定位伪造-实战足不出户畅玩Pokemon Go
本文旨在技术探讨故本文不提供工具,正常玩家请勿模仿,游戏中虚拟位置有封号风险 0x00 安卓定位方式归类 要伪造定位首先要摸清定位到底是如何实现的,首先从广义上来区分安卓的定位方式实际上就gps和ne ...
- Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例
引言 Cordova(PhoneGap)采用的是HTML5+JavaScript混合模式来开发移动手机APP,因此当页面需要获取手机内部某些信息时(例如:联系人信息,坐标定位,短信等),程序就需要调用 ...
- 百度网盘,前几天刚从百度云改名过来,百度云这个名字给之前的百度开放云(同步盘用户比较小众)good
作者:黑郁金香链接:http://www.zhihu.com/question/51803053/answer/127562835来源:知乎著作权归作者所有,转载请联系作者获得授权. 在8月网盘大面积 ...
- Android TV开发总结(六)构建一个TV app的直播节目实例
请尊重分享成果,转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52966319 近年来,Android TV的迅速发展,传统的有线电视受 ...
- DELPHI安卓定位权限申请
DELPHI安卓定位权限申请 安卓8及以后版本的权限分为静态和动态申请2部分,而之前的安卓版本只需要静态申请权限. 1)静态申请定位权限: 2)动态申请定位权限: uses System.Permis ...
- 【WEB自动化测试之控件定位】基于HTML5控件的唯一控件属性定位
一.WEB控件定位是什么 要想弄懂这个问题,我们还是基于实践来学习.我们先来看一条入门级别自动化测试用例的构成. DemoCase:正确用户名和密码登录博客园,登录成功 URL: https:// ...
- iOS进阶_地图定位
一.定位步骤 1.Xcode自带地图,直接先引入头文件 #import <CoreLocation/CoreLocation.h> 2.CLLocation框架中的CLLocationMa ...
- 【百度地图API】如何批量转换为百度经纬度
原文:[百度地图API]如何批量转换为百度经纬度 摘要: 百度地图API的官网上提供了常用坐标转换的示例.但是,一次只能转换一个,真的非常麻烦!!这里结合了官方的示例,自制一个批量转换工具,供大家参考 ...
随机推荐
- ssh连接失败, 记下来原因和解决方案
mac下使用secureCRT发现连接不了虚拟机上的linux 运行 ps -e | grep ssh,查看是否有sshd进程 如果没有,说明server没启动,通过 /etc/init.d/sshd ...
- 实战小项目之ffmpeg推流yolo视频实时检测
之前实现了yolo图像的在线检测,这次主要完成远程视频的检测.主要包括推流--収流--检测显示三大部分 首先说一下推流,主要使用ffmpeg命令进行本地摄像头的推流,为了实现首屏秒开使用-g设置gop ...
- StrBlobPtr类——weak_ptr访问vector元素
#include <iostream> #include <memory> #include <string> #include <initializer_l ...
- Python—文件
def fileCopy(src, dst, srcEncoding, dstEncoding): with open(src, 'r', encoding=srcEncoding) as srcfp ...
- MyEclipse2013使用总结
1.myeclipse10中怎样将建的包设置成树形结构或者并列结构. 右上边三角那里进去设置选第一个是显示完整的包名,第二个显示的是树形结构这种方法没效 2.从高版本到项目的低版本的MyEclipse ...
- 一个项目的Makefile编写及调试
父Makefile 在src目录下包含很多文件夹,那么需要遍历所有的目录执行Makefile,那么给一个在src目录下的Makefile. # 需要排除的目录 exclude_dirs := incl ...
- C++多态实现与继承
面向对象的三个基本特征 面向对象的三个基本特征是:封装.继承.多态.其中, 封装可以隐藏实现细节,使得代码模块化: 继承可以扩展已存在的代码模块(类),它们的目的都是为了——代码重用: 而多态则是为了 ...
- 如何将PDF的背景色设置为保护眼睛的苹果绿色
福昕阅读器请戳这里. Adobe Acrobat请戳这里.
- Qt窗口及控件-窗口Close()自动释放
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt-窗口Close()后自动释放空间 本文地址:http://techieliang ...
- c++内存分类
1. 代码段:放置代码 2. 静态数据段:放置全局变量和static的局部变量,字符串常量 3. 动态数据段:栈,放置局部作用域的变量,离开函数返回后就会被释放:堆,必须手动的分配和释放. 关于字符串 ...