添加libgpsrelaysentinel类库初始源码

This commit is contained in:
2026-05-07 10:54:13 +08:00
parent 2927303a88
commit 3e4a64f31e
25 changed files with 1140 additions and 1 deletions

View File

@@ -56,6 +56,7 @@ android {
}
dependencies {
api project(':libgpsrelaysentinel')
api 'com.google.code.gson:gson:2.10.1'

View File

@@ -9,12 +9,15 @@ import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Binder;
import android.os.Build;
import android.os.Bundle;
import android.os.IBinder;
import androidx.core.app.NotificationCompat;
import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.libgpsrelaysentinel.manager.GpsSubscribeManager;
import cc.winboll.studio.libgpsrelaysentinel.manager.SubscribeLocationManager;
import cc.winboll.studio.libgpsrelaysentinel.model.GpsSubscribeMsg;
import java.util.Map;
public class MainService extends Service {
@@ -72,6 +75,31 @@ public class MainService extends Service {
String gpsInfo = "Lat: " + location.getLatitude() + ", Lng: " + location.getLongitude();
LogUtils.d(TAG, "Location changed: " + gpsInfo);
updateNotification(gpsInfo);
//管理器初始化
GpsSubscribeManager subscribeManager = GpsSubscribeManager.getInstance();
SubscribeLocationManager locationManager = SubscribeLocationManager.getInstance();
//遍历所有订阅者做距离判断+定点更新
Map<String, GpsSubscribeMsg> subscribeMap = subscribeManager.getSubscribeMap();
for (Map.Entry<String, GpsSubscribeMsg> entry : subscribeMap.entrySet()) {
String sid = entry.getKey();
GpsSubscribeMsg subscribeMsg = entry.getValue();
double nowLat = location.getLatitude();
double nowLng = location.getLongitude();
//判断是否满足推送
boolean canPush = locationManager.isNeedPush(sid, nowLat, nowLng);
if (canPush) {
//执行发送GPS广播
//sendGpsBroadcast(...);
//推送成功立刻刷新订阅者基准坐标
locationManager.updateSubscriberPoint(sid, nowLat, nowLng);
}
}
}
@Override