From a75addbc22f25b5fb219d3979f7bcd9cbf4942c3 Mon Sep 17 00:00:00 2001 From: hjw <hjw@ma.nodka.com> Date: Thu, 20 Apr 2023 05:50:59 +0000 Subject: [PATCH] 适配安卓11 --- .idea/vcs.xml | 6 ++ app/keystore/platform.jks | 0 app/src/main/java/com/jwipc/nodka_alarmpower/MainActivity.java | 91 +++++++++++++++++++++--------- .idea/gradle.xml | 1 app/src/main/java/com/jwipc/nodka_alarmpower/MyApplication.java | 30 ++++++++++ build.gradle | 11 +++ app/src/main/AndroidManifest.xml | 4 + app/src/main/libs/arm64-v8a/libnodka-jni.so | 0 app/libs/NodkaAPI.jar | 0 app/build.gradle | 26 +++++++- 10 files changed, 138 insertions(+), 31 deletions(-) diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 9c52035..9d554de 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> + <component name="GradleMigrationSettings" migrationVersion="1" /> <component name="GradleSettings"> <option name="linkedExternalProjectsSettings"> <GradleProjectSettings> diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$" vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index e958cb0..9720c46 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,13 +5,31 @@ buildToolsVersion "33.0.0" defaultConfig { - applicationId "com.jwipc.nodka_alarmpower" + applicationId "com.nodka.alarmpower" minSdkVersion 19 targetSdkVersion 19 } + sourceSets.main { + jni.srcDirs = [] + jniLibs.srcDir "src/main/libs" + } + + signingConfigs { + platformkeystore { + keyAlias "platform" + keyPassword "android" + storeFile file('../app/keystore/platform.jks') + storePassword "android" + } + } + buildTypes { + debug { + signingConfig signingConfigs.platformkeystore + } release { + signingConfig signingConfigs.platformkeystore minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } @@ -19,6 +37,8 @@ } dependencies { - compile 'com.android.support:support-v4:25.+' - compile files('libs/spiritv1.3.jar') + implementation 'com.android.support:support-v4:25.+' + implementation files('libs/spiritv1.3.jar') + implementation files('libs/NodkaAPI.jar') +// compileOnly files('libs/classes-full-debug.jar') } diff --git a/app/keystore/platform.jks b/app/keystore/platform.jks new file mode 100644 index 0000000..0321479 --- /dev/null +++ b/app/keystore/platform.jks Binary files differ diff --git a/app/libs/NodkaAPI.jar b/app/libs/NodkaAPI.jar new file mode 100644 index 0000000..4bdb54f --- /dev/null +++ b/app/libs/NodkaAPI.jar Binary files differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7934b41..8e33196 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,8 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.jwipc.nodka_alarmpower" android:versionCode="3" - android:versionName="v3.0" > + android:versionName="v3.0" + android:sharedUserId="android.uid.system" > <uses-sdk android:minSdkVersion="19" @@ -13,6 +14,7 @@ <application + android:name=".MyApplication" android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" diff --git a/app/src/main/java/com/jwipc/nodka_alarmpower/MainActivity.java b/app/src/main/java/com/jwipc/nodka_alarmpower/MainActivity.java index 944bc7c..d2cf10d 100644 --- a/app/src/main/java/com/jwipc/nodka_alarmpower/MainActivity.java +++ b/app/src/main/java/com/jwipc/nodka_alarmpower/MainActivity.java @@ -15,6 +15,7 @@ import android.content.pm.PackageManager.NameNotFoundException; import android.hardware.spirit.AlarmPowerItem; import android.hardware.spirit.AlarmPowerManager; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Message; @@ -42,6 +43,8 @@ import android.widget.TimePicker; import android.widget.TimePicker.OnTimeChangedListener; import android.provider.Settings; + +import com.nodka.api.alarm.SpiritAlarmItem; public class MainActivity extends Activity{ @@ -347,40 +350,72 @@ sendBroadcast(new Intent("android.intent.action.NDJ_GET_ALARM_REBOOT")); try { - AlarmPowerManager mAlarmPowerManager = new AlarmPowerManager(); - - List<AlarmPowerItem> list_AlarmPowerItem = mAlarmPowerManager.getAlarmPowerList(); - - if(list_AlarmPowerItem != null) - { - if(list_AlarmPowerItem.size() > 0) + if (isSpiritVersion()) { + AlarmPowerManager mAlarmPowerManager = new AlarmPowerManager(); + + List<AlarmPowerItem> list_AlarmPowerItem = mAlarmPowerManager.getAlarmPowerList(); + if(list_AlarmPowerItem != null) { - - AlarmPowerItem mAlarmPowerItem = list_AlarmPowerItem.get(0); - - Message msg_on = new Message(); - msg_on.what = set_AlarmPower_on; - msg_on.obj = mAlarmPowerItem.getAlarmPowerOnHour() + ":" + mAlarmPowerItem.getAlarmPowerOnMinute() + ":" + mAlarmPowerItem.getAlarmPowerOnSecond(); - time_alarm_power_on = (String) msg_on.obj; - handler.sendMessage(msg_on); - - Message msg_off = new Message(); - msg_off.what = set_AlarmPower_off; - msg_off.obj = mAlarmPowerItem.getAlarmPowerOffHour() + ":" + mAlarmPowerItem.getAlarmPowerOffMinute() + ":" + mAlarmPowerItem.getAlarmPowerOffSecond(); - time_alarm_power_off = (String) msg_off.obj; - handler.sendMessage(msg_off); - - + if(list_AlarmPowerItem.size() > 0) + { + + AlarmPowerItem mAlarmPowerItem = list_AlarmPowerItem.get(0); + + Message msg_on = new Message(); + msg_on.what = set_AlarmPower_on; + msg_on.obj = mAlarmPowerItem.getAlarmPowerOnHour() + ":" + mAlarmPowerItem.getAlarmPowerOnMinute() + ":" + mAlarmPowerItem.getAlarmPowerOnSecond(); + time_alarm_power_on = (String) msg_on.obj; + handler.sendMessage(msg_on); + + Message msg_off = new Message(); + msg_off.what = set_AlarmPower_off; + msg_off.obj = mAlarmPowerItem.getAlarmPowerOffHour() + ":" + mAlarmPowerItem.getAlarmPowerOffMinute() + ":" + mAlarmPowerItem.getAlarmPowerOffSecond(); + time_alarm_power_off = (String) msg_off.obj; + handler.sendMessage(msg_off); + + /*Message msg_check_AlarmPower_repeat = new Message(); msg_check_AlarmPower_repeat.what = set_check_AlarmPower_repeat; msg_check_AlarmPower_repeat.obj = mAlarmPowerItem.getAlarmPowerRepeat().equals("true") ? true : false; time_alarm_power_repeat = mAlarmPowerItem.getAlarmPowerRepeat(); handler.sendMessage(msg_check_AlarmPower_repeat);*/ - + + } + } + + + + } else { + List<SpiritAlarmItem> spiritAlarmItems = MyApplication.getApplication().getNodkaAPI().alarm_getAlarmPowerList(); + if (spiritAlarmItems != null) { + if (spiritAlarmItems.size() > 0) { + + SpiritAlarmItem mSpiritAlarmItem = spiritAlarmItems.get(0); + + Message msg_on = new Message(); + msg_on.what = set_AlarmPower_on; + msg_on.obj = mSpiritAlarmItem.getAlarmPowerOnHour() + ":" + mSpiritAlarmItem.getAlarmPowerOnMinute() + ":" + mSpiritAlarmItem.getAlarmPowerOnSecond(); + time_alarm_power_on = (String) msg_on.obj; + handler.sendMessage(msg_on); + + Message msg_off = new Message(); + msg_off.what = set_AlarmPower_off; + msg_off.obj = mSpiritAlarmItem.getAlarmPowerOffHour() + ":" + mSpiritAlarmItem.getAlarmPowerOffMinute() + ":" + mSpiritAlarmItem.getAlarmPowerOffSecond(); + time_alarm_power_off = (String) msg_off.obj; + handler.sendMessage(msg_off); + + + /*Message msg_check_AlarmPower_repeat = new Message(); + msg_check_AlarmPower_repeat.what = set_check_AlarmPower_repeat; + msg_check_AlarmPower_repeat.obj = mAlarmPowerItem.getAlarmPowerRepeat().equals("true") ? true : false; + time_alarm_power_repeat = mAlarmPowerItem.getAlarmPowerRepeat(); + handler.sendMessage(msg_check_AlarmPower_repeat);*/ + + } } } - } catch (RemoteException e) { + } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } @@ -533,8 +568,10 @@ return npList; } - - + + public boolean isSpiritVersion() { + return Build.VERSION.SDK_INT <= 25; + } diff --git a/app/src/main/java/com/jwipc/nodka_alarmpower/MyApplication.java b/app/src/main/java/com/jwipc/nodka_alarmpower/MyApplication.java new file mode 100644 index 0000000..a61c80b --- /dev/null +++ b/app/src/main/java/com/jwipc/nodka_alarmpower/MyApplication.java @@ -0,0 +1,30 @@ +package com.jwipc.nodka_alarmpower; + +import android.app.Application; + +import com.nodka.api.NodkaAPI; + +public class MyApplication extends Application { + + private NodkaAPI mNodkaAPI; + private static MyApplication mApp; + + @Override + public void onCreate() { + super.onCreate(); + mApp = this; + createNorcoAPI(); + } + + public static MyApplication getApplication() { + return mApp; + } + + private void createNorcoAPI() { + mNodkaAPI = NodkaAPI.nodkaAPICreate(this); + } + + public NodkaAPI getNodkaAPI() { + return mNodkaAPI; + } +} diff --git a/app/src/main/libs/arm64-v8a/libnodka-jni.so b/app/src/main/libs/arm64-v8a/libnodka-jni.so new file mode 100644 index 0000000..6022198 --- /dev/null +++ b/app/src/main/libs/arm64-v8a/libnodka-jni.so Binary files differ diff --git a/build.gradle b/build.gradle index d2bd725..0d22e16 100644 --- a/build.gradle +++ b/build.gradle @@ -2,6 +2,7 @@ buildscript { repositories { jcenter() + google() } dependencies { classpath 'com.android.tools.build:gradle:7.3.0' @@ -11,5 +12,15 @@ allprojects { repositories { jcenter() + google() + } + gradle.projectsEvaluated { + tasks.withType(JavaCompile) { + Set<File> fileSet = options.bootstrapClasspath.getFiles() + List<File> newFileList = new ArrayList<>() + newFileList.add(new File("./app/libs/classes-full-debug.jar")) + newFileList.addAll(fileSet) + options.bootstrapClasspath = files(newFileList.toArray()) + } } } -- Gitblit v1.6.2