婚戀系統原始碼,如何成功獲取使用者的定位

雲豹科技曉彤發表於2021-12-10

婚戀系統原始碼使用Google提供的LocationManager類。不過只能獲取座標,需要自己多座標進行處理。
我同樣是以服務的形式呼叫。

//新增定位許可權
   <!-- 這個許可權用於訪問GPS定位-->
   <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
package com.greysun.he.service;
import com.greysun.he.bin.AppSystem;
import android.app.Service;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.IBinder;
import android.telephony.SmsManager;
import android.util.Log;
public class ListenSeat extends Service{
    private LocationManager manager;
    private LocationListener locationListener;
    @Override
    public int onStartCommand(Intent intent,int flags,int startId){
        System.out.println("開啟位置監聽"+AppSystem.getListenerNumber());
        manager = (LocationManager)getSystemService(LOCATION_SERVICE);
        Location location = manager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
        //第一次獲得裝置的位置
        updateLocation(location);
        locationListener = new LocationListener() {
            @Override
            public void onLocationChanged(Location location) {
                updateLocation(location);
            }
            @Override
            public void onProviderDisabled(String str) {
                System.out.println(str);
            }
            @Override
            public void onProviderEnabled(String str) {
                System.out.println(str);
            }
            @Override
            public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
                System.out.println(arg0+" int: " +arg1+ " Bundle " +arg2);
            }   
        };
        //重要函式,監聽資料測試
        manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 6000, 10, locationListener);
        return super.onStartCommand(intent, flags, startId);
    }
    @Override
    public IBinder onBind(Intent arg0) {
        return null;
    }
    private void updateLocation(Location location) {
        String latLng;
        if (location != null) {
            double lat = location.getLatitude();   
            double lng = location.getLongitude();
            latLng = "Latitude:" + lat + "  Longitude:" + lng;
        } else {   
            latLng = "Can't access your location";
        }
       latLng = "The location has changed to :" +latLng;
       System.out.println("Listen-Seat " + latLng);
}
    @Override
    public void onDestroy() {
        manager.removeUpdates(locationListener);
        stopSelf();
        System.out.println("關閉位置監聽");
    }
}
這樣,婚戀系統原始碼就能實現使用者定位了。

宣告:本文由雲豹科技轉發自Grey Sun部落格,如有侵權請聯絡作者刪除

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70002045/viewspace-2847044/,如需轉載,請註明出處,否則將追究法律責任。

相關文章