回覆列表
  • 1 # 木杳子

    直接透過安卓的原生介面獲取一個gps的位置意義不是很大。這個資料在一定的座標系上才有意義。建議去高德的開發平臺註冊個帳號,引入sdk來做,地理位置與地理位置解析的概念先了解下吧。

  • 2 # 成謎吃瓜的少年

    第一步,申明許可權。(5.0之後許可權需要動態申請,具體程式碼和這個問題無關就不貼出來了)

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

    第二步透過LocationManager類獲取位置資訊,下面是一個封裝好的工具類

    **

    * Created by DELL zhanghuirong on 2019/3/15.

    * 獲取當前位置資訊

    */

    public class MyLocationUtil {

    private static String provider;

    public static Location getMyLocation() {

    // 獲取當前位置資訊

    //獲取定位服務

    LocationManager locationManager = (LocationManager) MyApp.getContext().getSystemService(Context.LOCATION_SERVICE);

    //獲取當前可用的位置控制器

    List<String> list = locationManager.getProviders(true);

    if (list.contains(locationManager.GPS_PROVIDER)) {

    // GPS位置控制器

    provider = locationManager.GPS_PROVIDER;//GPS定位

    } else if (list.contains(locationManager.NETWORK_PROVIDER)) {

    // 網路位置控制器

    provider = locationManager.NETWORK_PROVIDER;//網路定位

    }

    if (provider != null) {

    if (ActivityCompat.checkSelfPermission(MyApp.getContext(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(MyApp.getContext(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {

    // TODO: Consider calling

    // ActivityCompat#requestPermissions

    // here to request the missing permissions, and then overriding

    // public void onRequestPermissionsResult(int requestCode, String[] permissions,

    // int[] grantResults)

    // to handle the case where the user grants the permission. See the documentation

    // for ActivityCompat#requestPermissions for more details.

    return null;

    }

    Location lastKnownLocation = locationManager.getLastKnownLocation(provider);

    return lastKnownLocation;

    } else {

    ToastUtils.makeText("請檢查網路或GPS是否開啟");

    }

    return null;

    }

    }

    第三步(其實到上一步這個問題已經解決了,這個算擴充套件吧)將位置資訊轉換成地址資訊。

    在高德或者百度地圖開發者平臺申請訪問api許可。將第二步獲取到的經緯度資訊上傳查詢對應座標資訊。因為百度和高德用的不是同一個座標系,查詢時仔細看官方API。

  • 中秋節和大豐收的關聯?
  • 寫一個與過年結尾相呼應的開頭?