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

lowmem
Matthew 2 months ago
parent 49aff958d0
commit 8398ae8246

@ -89,6 +89,9 @@
<intent>
<action android:name="android.media.action.STILL_IMAGE_CAMERA" />
</intent>
<intent>
<action android:name="android.intent.action.TIME_CHANGED" />
</intent>
<package android:name="com.xypower.mplive" />
</queries>
@ -166,9 +169,6 @@
<receiver
android:name=".MicroPhotoService$AlarmReceiver"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.TIME_CHANGED"/>
</intent-filter>
</receiver>
<receiver
android:name=".BootBroadcastReceiver"

@ -1510,3 +1510,21 @@ Java_com_xypower_mpapp_MicroPhotoService_sendCameraCtrl(
pTerminal->SendCameraCtrl(channel, preset, cmd);
}
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();
}

@ -135,8 +135,6 @@ public class MicroPhotoService extends Service {
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_TIME_CHANGED = "android.intent.action.TIME_CHANGED";
private static final String EXTRA_PARAM_CHANNEL = "Channel";
private static final String EXTRA_PARAM_PRESET = "Preset";
private static final String EXTRA_PARAM_PHOTO_OR_VIDEO = "PhotoOrVideo";
@ -298,7 +296,7 @@ public class MicroPhotoService extends Service {
intentFilter.addAction(ACTION_HEARTBEAT_MANUALLY);
intentFilter.addAction(ACTION_GPS_TIMEOUT);
intentFilter.addAction(ACTION_RESTART);
intentFilter.addAction(ACTION_TIME_CHANGED);
intentFilter.addAction(Intent.ACTION_TIME_CHANGED);
getApplicationContext().registerReceiver(mAlarmReceiver, intentFilter, Context.RECEIVER_EXPORTED | Context.RECEIVER_VISIBLE_TO_INSTANT_APPS);
}
{
@ -662,8 +660,11 @@ public class MicroPhotoService extends Service {
ex.printStackTrace();
}
restartSelfImpl(context, reason);
} else if (TextUtils.equals(ACTION_TIME_CHANGED, action)) {
} 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);
}
}
}
@ -1603,6 +1604,8 @@ cellSignalStrengthGsm.getDbm();
// protected native long[] getNextScheduleItem(long handler);
protected native boolean notifyToTakePhoto(long handler, int channel, int preset, long scheduleTime, String url, int mediaType);
protected native void notifyTimeUpdated(long handler);
protected native boolean sendHeartbeat(long handler, int signalLevel);
protected native boolean reloadConfigs(long handler);
protected native void updatePosition(long handler, double lon, double lat, double radius, long ts);

Loading…
Cancel
Save