|
24 | 24 | import java.io.OutputStream; |
25 | 25 | import java.io.BufferedInputStream; |
26 | 26 | import java.util.ArrayList; |
| 27 | +import java.util.Calendar; |
27 | 28 | import java.util.zip.ZipEntry; |
28 | 29 | import java.util.zip.ZipInputStream; |
29 | 30 | import java.time.OffsetDateTime; |
@@ -90,7 +91,7 @@ public static int initialize(String entryPointLibName, String[] args, Context co |
90 | 91 | unzipAssets(context, filesDir, "assets.zip"); |
91 | 92 |
|
92 | 93 | Log.i("DOTNET", "MonoRunner initialize,, entryPointLibName=" + entryPointLibName); |
93 | | - int localDateTimeOffset = OffsetDateTime.now().getOffset().getTotalSeconds(); |
| 94 | + int localDateTimeOffset = getLocalDateTimeOffset(); |
94 | 95 | return initRuntime(filesDir, cacheDir, testResultsDir, entryPointLibName, args, localDateTimeOffset); |
95 | 96 | } |
96 | 97 |
|
@@ -152,6 +153,15 @@ static void unzipAssets(Context context, String toPath, String zipName) { |
152 | 153 | } |
153 | 154 | } |
154 | 155 |
|
| 156 | + static int getLocalDateTimeOffset() { |
| 157 | + if (android.os.Build.VERSION.SDK_INT >= 26) { |
| 158 | + return OffsetDateTime.now().getOffset().getTotalSeconds(); |
| 159 | + } else { |
| 160 | + int offsetInMillis = Calendar.getInstance().getTimeZone().getRawOffset(); |
| 161 | + return offsetInMillis / 1000; |
| 162 | + } |
| 163 | + } |
| 164 | + |
155 | 165 | static native int initRuntime(String libsDir, String cacheDir, String testResultsDir, String entryPointLibName, String[] args, int local_date_time_offset); |
156 | 166 |
|
157 | 167 | static native int setEnv(String key, String value); |
|
0 commit comments