Android Baidu定位的简单使用

来源:互联网 发布:linkin 大数据平台 编辑:程序博客网 时间:2024/05/01 19:09
Baidu定位使用:
AS:
1.首先,工程在下图位置设置自己的签名文件

然后 ,在Build--Generate singned apk 设置自己的签名文件。(该功能是生成带签名的apk)
2.在百度sdk 注册和获取秘钥

填写该三处 ,其中Android studio 获取sha1的
方法-1:https://jingyan.baidu.com/article/cbf0e500aca3232eaa289301.html
方法-2:进入Windows系统自带的cmd命令窗口
先进入 到C:\Users\Administrator\.android目录中 菜单 cd .android
然后是命令keytool -list -v -keystore debug.keystore
其中的debug.keystore换成自己生成的签名文件,包括路径。
输入的密钥库口令也是在生成签名文件时候设置的密码。
就可以得到秘钥。
最后,提交后得到AK值。
3.下载sdk,As 将lib 中的文件防止到libs目录下

其中,单独定位功能只需要图中的几个so和jar即可。
jar文件可以右键添加add lib 会在app build.gradle 中自动生成配置,如下图。
so 文件需要在app build.gradle进行如下配置。

4.AndroidManifest配置
<?xml version="1.0"encoding="utf-8"?>
<manifestxmlns:android="http://schemas.android.com/apk/res/android"
package="com.yfor.bddb"
android:versionCode="1"
android:versionName="1.0.0">

<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="23"/>

<uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION">
</uses-permission>
<uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION">
</uses-permission>
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE">
</uses-permission>
<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE">
</uses-permission>
<uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE">
</uses-permission>
<uses-permissionandroid:name="android.permission.READ_PHONE_STATE">
</uses-permission>
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE">
</uses-permission>
<uses-permissionandroid:name="android.permission.INTERNET"/>
<uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS">
</uses-permission>
<uses-permissionandroid:name="android.permission.READ_LOGS">
</uses-permission>
<uses-permissionandroid:name="android.permission.VIBRATE"/>
<uses-permissionandroid:name="android.permission.WAKE_LOCK"/>
<uses-permissionandroid:name="android.permission.WRITE_SETTINGS"/>

<application
android:name=".LocationApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black"
>
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote">
<intent-filter>
<actionandroid:name="com.baidu.location.service_v2.2">
</action>
</intent-filter>
</service>
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="92EzXd45cIgwpgnjUDsGXGCZfTWnuC48"/><!--http://lbsyun.baidu.com/apiconsole/key-->

<!-- meta-data需要写在application-->
<activity
android:name="com.yfor.bddb.MainActivity"
android:label="@string/app_name">
<intent-filter>
<actionandroid:name="android.intent.action.MAIN"/>

<categoryandroid:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>

</application>

</manifest>
5.Application 中初始化
publicLocationServicelocationService;
@Override
public voidonCreate() {
super.onCreate();
/***初始化定位sdk,建议在Application中创建*/
locationService=newLocationService(getApplicationContext());
}
5.开启定位
locationService= ((LocationApplication) getApplication()).locationService;
locationService.registerListener(newBDAbstractLocationListener() {
@Override
public voidonReceiveLocation(BDLocation bdLocation) {
//得到的位置信息bdLocation
LocationResult.setText(LocationResult.getText()+"\n信息:"+bdLocation.getAddrStr());
}
});
LocationClientOption option = newLocationClientOption();
/**重复执行时间间隔*/
option.setScanSpan(3000);
/**定位模式 高精度*/
option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);
/**坐标系gcj02(国际局加密经纬度坐标)*/
option.setCoorType("gcj02");
/**地理位置信息*/
option.setIsNeedAddress(true);
/**周边poi列表*/
option.setIsNeedLocationPoiList(true);
/**位置语意化*/
option.setIsNeedLocationDescribe(true);
/**方向*/
option.setNeedDeviceDirect(true);
locationService.setLocationOption(option);
locationService.start();//定位SDK
关闭定位
locationService.unregisterListener(mListener);//注销掉监听
locationService.stop();//停止定位服务

eclipse 的使用方法基本一样,不一样的地方只在签名的设置和少了so和jar的设置。

阅读全文
0 0