개발 환경 :
android studio
1 : 환경 준비
1. 먼저 Tencent 개발 계정이 있어야합니다.
Portal : https://lbs.qq.com/
입력 후 등록 하십시오 .
2. APPKey를 얻습니다.
3. AndroidManifest.xml 파일에서 APPKey를 구성합니다.
<application>
...
<meta-data android:name="TencentMapSDK" android:value="您申请的Key" />
</application>
4.
실제로 AndroidStudio 를 가져 오는 방법에는 두 가지가 있습니다. 하나는 jar 패키지를 직접 가져 오는 것이고 두 번째는 종속성을 추가하는 것입니다. 두 번째 유형이 훨씬 더 편리하기 때문에 두 번째 유형을 선택했습니다. 이 관점에서 Tencent의 포지셔닝은 실제로 Baidu보다 훨씬 낫습니다. 그는 지난 학기에 Baidu를 사용했습니다.
1. build.gradle에서 구성을 수정하고
다음 구성을 추가합니다.
llprojects {
repositories {
jcenter()
google()
mavenCentral()
}
}
2. 두 번째 build.gradle 파일의 종속성에 종속성 추가
implementation 'com.tencent.map.geolocation:TencentLocationSdk-openplatform:7.2.6'
5. AndroidManifest.xml 파일에 권한을 추가합니다.
<!-- 通过GPS得到精确位置 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 通过网络得到粗略位置 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 访问网络. 某些位置信息需要从网络服务器获取 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 访问WiFi状态. 需要WiFi信息用于网络定位 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 修改WiFi状态. 发起WiFi扫描, 需要WiFi信息用于网络定位 -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!-- 访问网络状态, 检测网络的可用性. 需要网络运营商相关信息用于网络定位 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 访问网络的变化, 需要某些信息用于网络定位 -->
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<!-- 访问手机当前状态, 需要device id用于网络定位 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- 支持A-GPS辅助定位 -->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<!-- 用于 log 日志 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
이전 준비가 완료된 다음 코드 부분을 시작하십시오.
2 : 코딩 부분
1. TencentLocationManager 인스턴스 가져 오기
TencentLocationManager mLocationManager = TencentLocationManager.getInstance(this);
2. 위치 수신기 만들기
public class MyActivity extends Activity implements TencentLocationListener {
...
@Override
public void onLocationChanged(TencentLocation location, int error, String reason) {
// 用于接收定位结果
}
@Override
public void onStatusUpdate(String name, int status, String desc) {
//用于接收GPS、WiFi、Cell状态码,
}
}
3. TencentLocationRequest 생성
TencentLocationRequest request = TencentLocationRequest.create()
//1.用户可以自定义定位间隔,事件单位为毫秒,不得小于1000毫秒
request.setInterval(1000);
//2.设置请求级别
request.setRequestLevel(TencentLocationRequest.REQUEST_LEVEL_NAME);
//3.是否允许使用GPS(建议用户开启,在室外场景可以显著提升定位精度);
request.setAllowGPS(true);
//4.是否需要获取传感器方向
request. setAllowDirection(true);
//5.是否需要开启室内定位
request.setIndoorLocationMode(true);
내부 요청 레벨은 사용자 정의 할 수 있으며 참조 테이블은 다음과 같습니다.
4. 연락처 위치 요청 시작 (시작 위치)
mLocationManager.requestLocationUpdates(request,this);
5. 위치 지정 중지
// mLocationManager.removeUpdates(this);
6. 포지셔닝 결과 :
3 : Baidu와 Tencent의 비교
개인적으로 Tencent의 SDK는 Baidu보다 사용하기가 훨씬 간편하고 편리하다고 생각합니다. Baidu의 프로젝트 패키지 이름은 현지 이름과 일치해야하며 Tencent의 위치 서비스에는 이러한 제한이 없으며 중국어 이름도 사용할 수 있습니다. SDK Tencent는 종속성 만 가져 오면됩니다. 기능적 측면은 추가 테스트가 필요합니다.