diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 462b3ff..f736409 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -50,6 +50,9 @@ dependencies {
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
+ // 添加阿里云移动推送核心SDK
+ implementation("com.aliyun.ams:alicloud-android-push:3.8.2")
+ implementation("com.aliyun.dpa:oss-android-sdk:2.9.21")
implementation("de.hdodenhof:circleimageview:3.1.0")
// Retrofit
implementation("com.squareup.retrofit2:retrofit:2.9.0")
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9e65800..f88e4a5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -25,6 +25,15 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.DefenseApplication">
+
+
+
diff --git a/app/src/main/java/com/example/defenseapplication/liveVideo/DeviceInfoActivity.kt b/app/src/main/java/com/example/defenseapplication/liveVideo/DeviceInfoActivity.kt
new file mode 100644
index 0000000..b2d37b4
--- /dev/null
+++ b/app/src/main/java/com/example/defenseapplication/liveVideo/DeviceInfoActivity.kt
@@ -0,0 +1,27 @@
+package com.example.defenseapplication.liveVideo
+
+import android.os.Bundle
+import androidx.activity.enableEdgeToEdge
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowInsetsCompat
+import com.example.defenseapplication.R
+import com.example.defenseapplication.databinding.AlarmLogActivityBinding
+import com.example.defenseapplication.databinding.DeviceInfoActivityBinding
+import com.gyf.immersionbar.ImmersionBar
+
+class DeviceInfoActivity : AppCompatActivity() {
+ private lateinit var binding: DeviceInfoActivityBinding
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding = DeviceInfoActivityBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+ ImmersionBar.with(this)
+ .statusBarDarkFont(true)
+ .titleBar(binding.topBar)
+ .init()
+ binding.ivBack.setOnClickListener {
+ finish()
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/defenseapplication/liveVideo/LinkedUserActivity.kt b/app/src/main/java/com/example/defenseapplication/liveVideo/LinkedUserActivity.kt
new file mode 100644
index 0000000..37cf24f
--- /dev/null
+++ b/app/src/main/java/com/example/defenseapplication/liveVideo/LinkedUserActivity.kt
@@ -0,0 +1,27 @@
+package com.example.defenseapplication.liveVideo
+
+import android.os.Bundle
+import androidx.activity.enableEdgeToEdge
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowInsetsCompat
+import com.example.defenseapplication.R
+import com.example.defenseapplication.databinding.DeviceInfoActivityBinding
+import com.example.defenseapplication.databinding.LinkedUserActivityBinding
+import com.gyf.immersionbar.ImmersionBar
+
+class LinkedUserActivity : AppCompatActivity() {
+ private lateinit var binding: LinkedUserActivityBinding
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding = LinkedUserActivityBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+ ImmersionBar.with(this)
+ .statusBarDarkFont(true)
+ .titleBar(binding.topBar)
+ .init()
+ binding.ivBack.setOnClickListener {
+ finish()
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/defenseapplication/liveVideo/SettingsActivity.kt b/app/src/main/java/com/example/defenseapplication/liveVideo/SettingsActivity.kt
index 51c9fb2..b0cfaaf 100644
--- a/app/src/main/java/com/example/defenseapplication/liveVideo/SettingsActivity.kt
+++ b/app/src/main/java/com/example/defenseapplication/liveVideo/SettingsActivity.kt
@@ -70,6 +70,10 @@ class SettingsActivity : BaseActivity() {
val intent = Intent(this, AutoModeActivity::class.java)
startActivity(intent)
}
+ binding.itemDeviceInfo.setOnClickListener {
+ val intent = Intent(this, DeviceInfoActivity::class.java)
+ startActivity(intent)
+ }
}
diff --git a/app/src/main/java/com/example/defenseapplication/liveVideo/WiFiManagementActivity.kt b/app/src/main/java/com/example/defenseapplication/liveVideo/WiFiManagementActivity.kt
new file mode 100644
index 0000000..5a8ea3c
--- /dev/null
+++ b/app/src/main/java/com/example/defenseapplication/liveVideo/WiFiManagementActivity.kt
@@ -0,0 +1,28 @@
+package com.example.defenseapplication.liveVideo
+
+import android.os.Bundle
+import androidx.activity.enableEdgeToEdge
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowInsetsCompat
+import com.example.defenseapplication.R
+import com.example.defenseapplication.databinding.DeviceInfoActivityBinding
+import com.example.defenseapplication.databinding.LinkedUserActivityBinding
+import com.example.defenseapplication.databinding.WifiManagementActivityBinding
+import com.gyf.immersionbar.ImmersionBar
+
+class WiFiManagementActivity : AppCompatActivity() {
+ private lateinit var binding: WifiManagementActivityBinding
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding = WifiManagementActivityBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+ ImmersionBar.with(this)
+ .statusBarDarkFont(true)
+ .titleBar(binding.topBar)
+ .init()
+ binding.ivBack.setOnClickListener {
+ finish()
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/device_info_activity.xml b/app/src/main/res/layout/device_info_activity.xml
new file mode 100644
index 0000000..8fa76d8
--- /dev/null
+++ b/app/src/main/res/layout/device_info_activity.xml
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/linked_user_activity.xml b/app/src/main/res/layout/linked_user_activity.xml
new file mode 100644
index 0000000..5036ec7
--- /dev/null
+++ b/app/src/main/res/layout/linked_user_activity.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/settings_activity.xml b/app/src/main/res/layout/settings_activity.xml
index df51b1b..b306775 100644
--- a/app/src/main/res/layout/settings_activity.xml
+++ b/app/src/main/res/layout/settings_activity.xml
@@ -200,7 +200,7 @@
android:layout_height="wrap_content"
android:paddingHorizontal="16dp"
android:paddingVertical="12dp"
- android:text="@string/settings"
+ android:text="@string/basic_settings"
android:textColor="@color/gray"
android:textSize="14dp" />
@@ -262,7 +262,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:text="@string/about"
+ android:text="@string/device_info"
android:textColor="@color/black"
android:textSize="16dp" />
@@ -291,7 +291,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:text="@string/user_management"
+ android:text="@string/linked_user"
android:textColor="@color/black"
android:textSize="16dp" />
@@ -335,7 +335,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:text="@string/wifi"
+ android:text="@string/wiFi_management"
android:textColor="@color/black"
android:textSize="16dp" />
diff --git a/app/src/main/res/layout/wifi_management_activity.xml b/app/src/main/res/layout/wifi_management_activity.xml
new file mode 100644
index 0000000..7206d2d
--- /dev/null
+++ b/app/src/main/res/layout/wifi_management_activity.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml
index de4ffb5..d0c57d2 100644
--- a/app/src/main/res/values-zh/strings.xml
+++ b/app/src/main/res/values-zh/strings.xml
@@ -165,6 +165,7 @@
设置
功能设置
+ 基本设置
语音设置
水枪设置
自动模式
@@ -172,6 +173,8 @@
语言
中文
English
+ 关联用户
+ WiFi管理
关于
版本
退出登录
@@ -194,6 +197,10 @@
自动模式须知
知晓并同意
开启全自动模式后,设备/系统将自主运行、自动执行预设流程,无需人工手动干预操作。运行期间请勿随意断电、强制重启、遮挡感应部件或私自拆解设备,避免程序异常、运行中断。全自动模式仅适用于标准常规场景,特殊工况、异常环境、临时特殊需求下,请手动切换至人工模式操作。系统会自动识别常规状态并自适应调节,若出现报警、卡顿、异常提示等故障,需立即暂停全自动模式,排查问题后再重启使用。严禁在全自动运行范围内放置杂物、危险品,保持作业区域整洁通畅,防止设备碰撞、卡滞、安全事故发生。全自动模式运行数据、执行记录将自动留存,请勿随意删除或篡改系统配置参数,避免运行逻辑错乱。日常需定期检查设备状态、电量、电量、网络及硬件损耗,保障全自动模式稳定长效运行。未成年人、无关人员禁止触碰操作全自动模式开关及设置面板,无关人员禁止触碰操作全自动模式开关及设置面板,防止误操作引发故障与风险。
+ 设备信息
+ 设备型号
+ 自动布防开始时间
+ 自动布防结束时间
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index da37431..fe3a3f2 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -155,6 +155,7 @@
Settings
Function Settings
+ Basic Settings
Voice Settings
Water Gun Settings
Auto Mode
@@ -162,6 +163,8 @@
Language
Chinese
English
+ Linked User
+ WiFi Management
About
Version
Logout
@@ -169,6 +172,12 @@
Warning Voice Playback
Warning Voice Content
Enter warning voice content, system will generate voice automatically.
+ Device info
+ Device model
+ Auto arm start time
+ Auto arm End time
+
+
Avatar
Gender
@@ -343,6 +352,7 @@
I have read and agree
After enabling Full Auto Mode, the device/system will operate independently and automatically execute preset procedures without manual intervention.During operation, do not arbitrarily power off, force a restart, block sensor components or disassemble the device privately, so as to avoid program abnormalities and operation interruption. Full Auto Mode is only applicable to standard and conventional scenarios. Under special working conditions, abnormal environments or temporary special requirements, please manually switch to manual mode.The system will automatically identify normal status and make adaptive adjustments. In case of faults such as alarms, stuttering or abnormal prompts, immediately pause Full Auto Mode, troubleshoot the problem before restarting.Do not place sundries or dangerous goods within the automatic operation range. Keep the working area clean and unobstructed to prevent equipment collision, jamming and safety accidents.Operation data and execution records of Full Auto Mode will be automatically saved. Do not arbitrarily delete or tamper with system configuration parameters to avoid operational logic disorder.Check the device status, power level, network connection and hardware loss regularly on a daily basis to ensure stable and long-term operation of Full Auto Mode. Minors and irrelevant personnel are prohibited from touching or operating the Full Auto Mode switch and setting panel to prevent malfunctions and risks caused by misoperation.
+
Device has been running for %d days, please maintain in time
Device is offline, please check the WiFi and power connection
%ds retry
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 719623a..a0ad939 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -1,5 +1,7 @@
pluginManagement {
repositories {
+ maven(url = "https://maven.aliyun.com/repository/gradle-plugin")
+ gradlePluginPortal()
google {
content {
includeGroupByRegex("com\\.android.*")
@@ -19,6 +21,7 @@ dependencyResolutionManagement {
repositories {
google()
mavenCentral()
+ maven(url = "https://maven.aliyun.com/repository/public/")
}
}