增加时间发生变化后的更新处理

nx2024
Matthew 2 months ago
parent 87dbbb00d7
commit 3f7388a4cf

@ -86,6 +86,10 @@
<intent> <intent>
<action android:name="android.media.action.STILL_IMAGE_CAMERA" /> <action android:name="android.media.action.STILL_IMAGE_CAMERA" />
</intent> </intent>
<intent>
<action android:name="android.intent.action.TIME_CHANGED" />
</intent>
<package android:name="com.xypower.mplive" />
</queries> </queries>
<application <application
@ -161,7 +165,8 @@
<receiver <receiver
android:name=".MicroPhotoService$AlarmReceiver" android:name=".MicroPhotoService$AlarmReceiver"
android:exported="true" /> android:exported="true" >
</receiver>
<receiver <receiver
android:name=".BootBroadcastReceiver" android:name=".BootBroadcastReceiver"
android:enabled="true" android:enabled="true"

@ -1392,4 +1392,21 @@ Java_com_xypower_mpapp_MicroPhotoService_exportPrivateFile(
#else #else
return JNI_FALSE; return JNI_FALSE;
#endif #endif
} }
extern "C" JNIEXPORT void JNICALL
Java_com_xypower_mpapp_MicroPhotoService_notifyTimeUpdated(
JNIEnv* env, jobject pThis, jlong handle) {
CTerminal* pTerminal = reinterpret_cast<CTerminal *>(handle);
if (pTerminal == NULL)
{
return;
}
std::thread t([pTerminal]()
{
pTerminal->OnTimeUpdated();
});
t.detach();
}

@ -119,6 +119,7 @@ public class MicroPhotoService extends Service {
private static final String ACTION_HEARTBEAT_MANUALLY = "com.xypower.mpapp.ACT_HB_M"; private static final String ACTION_HEARTBEAT_MANUALLY = "com.xypower.mpapp.ACT_HB_M";
private static final String ACTION_UPDATE_CONFIGS = "com.xypower.mpapp.ACT_UPD_CFG"; private static final String ACTION_UPDATE_CONFIGS = "com.xypower.mpapp.ACT_UPD_CFG";
public static final String ACTION_VIDEO_FINISHED = "com.xypower.mpapp.ACT_V_FINISHED"; public static final String ACTION_VIDEO_FINISHED = "com.xypower.mpapp.ACT_V_FINISHED";
private static final String EXTRA_PARAM_CHANNEL = "Channel"; private static final String EXTRA_PARAM_CHANNEL = "Channel";
private static final String EXTRA_PARAM_PRESET = "Preset"; private static final String EXTRA_PARAM_PRESET = "Preset";
private static final String EXTRA_PARAM_PHOTO_OR_VIDEO = "PhotoOrVideo"; private static final String EXTRA_PARAM_PHOTO_OR_VIDEO = "PhotoOrVideo";
@ -272,11 +273,7 @@ public class MicroPhotoService extends Service {
intentFilter.addAction(ACTION_HEARTBEAT_MANUALLY); intentFilter.addAction(ACTION_HEARTBEAT_MANUALLY);
intentFilter.addAction(ACTION_GPS_TIMEOUT); intentFilter.addAction(ACTION_GPS_TIMEOUT);
intentFilter.addAction(ACTION_RESTART); intentFilter.addAction(ACTION_RESTART);
// intentFilter.addAction(ACTION_HEARTBEAT_MANUALLY); intentFilter.addAction(Intent.ACTION_TIME_CHANGED);
// intentFilter.addAction(ACTION_MSG_BROADCAST);
// intentFilter.addAction(ACTION_VIDEO_FINISHED);
// intentFilter.addAction(ACTION_STOP);
// intentFilter.addCategory(Intent.CATEGORY_DEFAULT);
getApplicationContext().registerReceiver(mAlarmReceiver, intentFilter, Context.RECEIVER_EXPORTED | Context.RECEIVER_VISIBLE_TO_INSTANT_APPS); getApplicationContext().registerReceiver(mAlarmReceiver, intentFilter, Context.RECEIVER_EXPORTED | Context.RECEIVER_VISIBLE_TO_INSTANT_APPS);
// IntentFilter intentFilter2 = new IntentFilter(ACTION_MSG_BROADCAST); // IntentFilter intentFilter2 = new IntentFilter(ACTION_MSG_BROADCAST);
@ -622,7 +619,12 @@ public class MicroPhotoService extends Service {
} catch (Exception ex) { } catch (Exception ex) {
ex.printStackTrace(); ex.printStackTrace();
} }
MicroPhotoService.restartApp(context.getApplicationContext(), MicroPhotoContext.PACKAGE_NAME_MPAPP, "Restart Cmd"); restartSelfImpl(context, reason);
} else if (TextUtils.equals(Intent.ACTION_TIME_CHANGED, action)) {
mService.notifyTimeUpdated(mService.mNativeHandle);
Date date = new Date();
long startTime = (date.getTime() + 999) / 1000;
mService.updateCaptureSchedule(startTime);
} }
} }
} }
@ -1496,6 +1498,8 @@ cellSignalStrengthGsm.getDbm();
// protected native long[] getNextScheduleItem(long handler); // protected native long[] getNextScheduleItem(long handler);
protected native boolean notifyToTakePhoto(long handler, int channel, int preset, long scheduleTime, boolean photoOrVideo); protected native boolean notifyToTakePhoto(long handler, int channel, int preset, long scheduleTime, boolean photoOrVideo);
protected native void notifyTimeUpdated(long handler);
protected native boolean sendHeartbeat(long handler, int signalLevel); protected native boolean sendHeartbeat(long handler, int signalLevel);
protected native boolean reloadConfigs(long handler); protected native boolean reloadConfigs(long handler);
protected native void updatePosition(long handler, double lon, double lat, double radius, long ts); protected native void updatePosition(long handler, double lon, double lat, double radius, long ts);

Loading…
Cancel
Save