From d83a152d6fc338d624c3e4c77313e74923b725c6 Mon Sep 17 00:00:00 2001 From: BlueMatthew Date: Wed, 3 Jan 2024 15:08:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8D=E5=90=88=E7=90=86=E7=9A=84=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=80=BC=E5=AF=BC=E8=87=B4=E5=BF=83=E8=B7=B3=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E8=A2=AB=E8=B7=B3=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xypower/mpapp/MicroPhotoService.java | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java index 9ddc836a..f7b3190b 100644 --- a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java +++ b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java @@ -38,6 +38,7 @@ import android.os.SystemClock; import androidx.core.app.NotificationCompat; import androidx.core.content.FileProvider; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; import android.telephony.SignalStrength; import android.telephony.SubscriptionManager; @@ -113,11 +114,10 @@ public class MicroPhotoService extends Service { } private static int mStateService = STATE_SERVICE.NOT_CONNECTED; - private String mCmdid = ""; private NotificationManager mNotificationManager; private final Map mWakeLocks = new HashMap<>(); - private int mHeartbeatDuration = 60000; // Default 10m: 10 * 60 * 1000 + private int mHeartbeatDuration = 0; // Default 1m: 10 * 60 * 1000 from NDK private long mNextHeartbeatTime = 0; private PositionManager mPositionManager = null; @@ -163,7 +163,7 @@ public class MicroPhotoService extends Service { intentFilter.addAction(ACTION_HEARTBEAT_MANUALLY); intentFilter.addAction(ACTION_MSG_BROADCAST); intentFilter.addAction(ACTION_VIDEO_FINISHED); - registerReceiver(mAlarmReceiver, intentFilter); + getApplicationContext().registerReceiver(mAlarmReceiver, intentFilter); // IntentFilter intentFilter2 = new IntentFilter(ACTION_MSG_BROADCAST); // registerReceiver(mAlarmReceiver, intentFilter2); @@ -211,7 +211,7 @@ public class MicroPhotoService extends Service { uninit(mNativeHandle); mNativeHandle = 0; - unregisterReceiver(mAlarmReceiver); + getApplicationContext().unregisterReceiver(mAlarmReceiver); unregisterReceiver(mScreenaAtionReceiver); unregisterReceiver(mNetworkChangedReceiver); @@ -300,7 +300,7 @@ public class MicroPhotoService extends Service { long baseTime = nowTs - startTime; mService.registerCaptureSchedule(startTime, baseTime); - }if (TextUtils.equals(ACTION_HEARTBEAT_MANUALLY, action)) { + } else if (TextUtils.equals(ACTION_HEARTBEAT_MANUALLY, action)) { Log.i(TAG, "HB Timer Fired ACTION=" + action); mService.sendHeartbeat(mService.mNativeHandle); } else if (TextUtils.equals(ACTION_TAKE_PHOTO_MANUALLY, action)) { @@ -570,11 +570,19 @@ public class MicroPhotoService extends Service { public static void sendHeartbeat(Context context) { Intent alarmIntent = new Intent(); + // if(Build.VERSION.SDK_INT >= 26) { + // alarmIntent.addFlags(0x01000000); + //} + alarmIntent.setPackage(context.getPackageName()); alarmIntent.setAction(ACTION_HEARTBEAT_MANUALLY); PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, alarmIntent, 0); + // context.sendBroadcast(alarmIntent); + // LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(context); + // localBroadcastManager.sendBroadcast(alarmIntent); + AlarmManager alarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE); - alarmManager.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 1000, pendingIntent); + alarmManager.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 100, pendingIntent); } @Override