@Android 定位不依賴三方sdk
申請定位權限
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<!-- 網路權限 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 粗略定位授權 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<!-- 精細定位授權 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!-- 模擬定位授權 -->
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"
tools:ignore="MockLocation,ProtectedPermissions" />

定義LocationManager物件實作監聽介面

獲取到維度 經度 使用GetAddressUtil工具類得到位置資訊


根據經緯度獲取當前位置地址資訊工具類
package com.example.myapplication;
import android.content.Context;
import android.location.Address;
import android.location.Geocoder;
import android.os.Build;
import android.util.Log;
import androidx.annotation.RequiresApi;
import java.util.List;
public class GetAddressUtil {
Context context;
public GetAddressUtil(Context context) {
this.context = context;
}
@RequiresApi(api = Build.VERSION_CODES.GINGERBREAD)
public String getAddress(double lnt, double lat) {
Geocoder geocoder = new Geocoder(context);
boolean falg = geocoder.isPresent();
StringBuilder stringBuilder = new StringBuilder();
try {
//根據經緯度獲取地理位置資訊—這里會獲取最近的幾組地址資訊,具體幾組由最后一個引數決定
List
if (addresses.size() > 0) {
Address address = addresses.get(0);
for (int i = 0; i < address.getMaxAddressLineIndex(); i++) {
//每一組地址里面還會有許多地址,這里我取的前2個地址,xxx街道-xxx位置
if (i == 0) {
stringBuilder.append(address.getAddressLine(i)).append("-");
}
if (i == 1) {
stringBuilder.append(address.getAddressLine(i));
break;
}
}
stringBuilder.append(address.getAdminArea());//省份
stringBuilder.append(address.getLocality());//市
stringBuilder.append(address.getFeatureName());//周邊地址
Log.d(“wy”, “地址資訊—>” + stringBuilder);
}
} catch (Exception e) {
e.printStackTrace();
}
return stringBuilder.toString();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/243340.html
標籤:其他
上一篇:Android GifImageView加載Gif圖片及原理
下一篇:QT如何連接云服務器上的資料庫
