開發環境:
android studio
目錄
- 一:準備環境
- 二:編碼部分
- 三:百度和騰訊的對比
一:準備環境
1.首先你得有一個騰訊開發賬號
傳送門:https://lbs.qq.com/
進去之后注冊,
2.獲取APPKey:

3.在AndroidManifest.xml檔案下配置APPKey:
<application>
...
<meta-data android:name="TencentMapSDK" android:value="您申請的Key" />
</application>
4.匯入AndroidStudio
其實是有兩種方式,一種是直接匯入jar包,第二種是添加依賴,因為第二種方便很多,所以就選擇第二種了,從這一步看來,騰訊定位比百度確實香很多,他瞄的上學期一直是用的百度,
1.修改build.gradle中的配置

增加配置如下:
llprojects {
repositories {
jcenter()
google()
mavenCentral()
}
}
2.在第二個build.gradle檔案中的dependencies中增加依賴
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" />
前面的準備作業做好了然后開始代碼部分
二:編碼部分
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.定位結果:

三:百度和騰訊的對比
個人感覺騰訊的sdk比百度使用起來要簡單方便很多,百度的工程包名還必須要和本地的一致,而騰訊位置服務就沒有這種限制,甚至還可以起中文名,sdk騰訊只需要匯入依賴即可,功能方面的話還需要進一步測驗,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/247200.html
標籤:其他
