Baidu定位使用:
AS:
1.首先,工程在下图位置设置自己的签名文件
然后 ,在Build--Generate singned apk 设置自己的签名文件。(该功能是生成带签名的apk)
2.在百度sdk 注册和获取秘钥
填写该三处 ,其中Android studio 获取sha1的
方法-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"
?>
<
manifest
xmlns:
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-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"
/>
<
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
>
<
action
android
: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
>
<
action
android
:name=
"android.intent.action.MAIN"
/>
<
category
android
:name=
"android.intent.category.LAUNCHER"
/>
</
intent-filter
>
</
activity
>
</
application
>
</
manifest
>
5.Application 中初始化
public
LocationService
locationService
;
@Override
public void
onCreate() {
super
.onCreate();
/***
初始化定位
sdk
,建议在
Application
中创建
*/
locationService
=
new
LocationService(getApplicationContext());
}
5.开启定位
locationService
= ((LocationApplication) getApplication()).
locationService
;
locationService
.registerListener(
new
BDAbstractLocationListener() {
@Override
public void
onReceiveLocation(BDLocation bdLocation) {
//得到的位置信息bdLocation
LocationResult
.setText(
LocationResult
.getText()+
"
\n
信息:
"
+bdLocation.getAddrStr());
}
});
LocationClientOption option =
new
LocationClientOption();
/**
重复执行时间间隔
*/
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的设置。