feat(spraying): 添加喷洒作业补充拍照和提交功能

- 在离线命令服务中增加补充照片、确认提交、提交、确认等语音指令
- 集成SprayingPhotoManager管理器用于照片操作
- 在拍照前和提交后调用SprayingPhotoManager.clear()清理照片
- 在OCR识别和结果页面添加照片到管理器
- 新增SprayingFinishActivity用于处理完成操作
- 实现finishLauncher处理补充拍照和提交动作
- 更新AndroidManifest.xml注册新活动
这个提交包含在:
徐勤民 2026-04-14 22:48:30 +08:00
父节点 eedb57afe3
当前提交 19997b4d54
共有 5 个文件被更改,包括 38 次插入1 次删除

查看文件

@ -90,6 +90,9 @@
<activity
android:name=".ui.SprayingManualResultActivity"
android:exported="false" />
<activity
android:name=".ui.SprayingFinishActivity"
android:exported="false" />
<activity
android:name=".ui.WelcomeActivity"
android:exported="true"

查看文件

@ -163,6 +163,10 @@ object OfflineCmdServiceHelper {
add(OfflineCmdBean("结束", "jie shu"))
add(OfflineCmdBean("完成", "wan cheng"))
add(OfflineCmdBean("完成任务", "wan cheng ren wu"))
add(OfflineCmdBean("补充照片", "bu chong zhao pian"))
add(OfflineCmdBean("确认提交", "que ren ti jiao"))
add(OfflineCmdBean("提交", "ti jiao"))
add(OfflineCmdBean("确认", "que ren"))
//
}
fun init(){

查看文件

@ -7,6 +7,7 @@ import com.nova.brain.glass.R
import com.nova.brain.glass.databinding.ActivitySprayingBinding
import com.nova.brain.glass.helper.OfflineCmdListener
import com.nova.brain.glass.helper.OfflineCmdServiceHelper
import com.nova.brain.glass.helper.SprayingPhotoManager
import com.nova.brain.glass.model.ItemItem
import com.nova.brain.glass.viewmodel.SprayingVM
import com.rokid.security.glass3.open.sdk.GlassSdk
@ -40,6 +41,7 @@ class SprayingActivity :
runOnUiThread {
binding.hint.text = "拍照中,请稍后..."
}
SprayingPhotoManager.clear()
isPhoto = true
takePhoto()
}
@ -82,6 +84,7 @@ class SprayingActivity :
"相机异常".showMessage()
}
} else {
SprayingPhotoManager.addPhoto(path)
startActivity(Intent(this@SprayingActivity, SprayingOCRActivity::class.java).apply {
putExtra("path", path)
})
@ -122,6 +125,7 @@ class SprayingActivity :
runOnUiThread {
binding.hint.text = "拍照中,请稍后..."
}
SprayingPhotoManager.clear()
isPhoto = true
takePhoto()
}

查看文件

@ -10,6 +10,7 @@ import com.nova.brain.glass.R
import com.nova.brain.glass.databinding.ActivitySprayingOcrBinding
import com.nova.brain.glass.helper.OfflineCmdListener
import com.nova.brain.glass.helper.OfflineCmdServiceHelper
import com.nova.brain.glass.helper.SprayingPhotoManager
import com.nova.brain.glass.model.ItemItem
import com.nova.brain.glass.viewmodel.SprayingOCRVM
import com.nova.brain.glass.viewmodel.SprayingVM
@ -85,6 +86,7 @@ class SprayingOCRActivity :
"相机异常".showMessage()
}
} else {
SprayingPhotoManager.addPhoto(path)
runOnUiThread {
binding.hint.text = "单击或语音输入“重拍”,可重新拍摄"
showPhoto(path)

查看文件

@ -12,6 +12,7 @@ import com.nova.brain.glass.R
import com.nova.brain.glass.databinding.ActivitySprayingResultBinding
import com.nova.brain.glass.helper.OfflineCmdListener
import com.nova.brain.glass.helper.OfflineCmdServiceHelper
import com.nova.brain.glass.helper.SprayingPhotoManager
import com.nova.brain.glass.model.ItemItem
import com.nova.brain.glass.viewmodel.SprayingResultVM
import com.rokid.security.glass3.open.sdk.GlassSdk
@ -50,6 +51,26 @@ class SprayingResultActivity :
}
}
}
private val finishLauncher =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode != Activity.RESULT_OK) {
return@registerForActivityResult
}
when (result.data?.getStringExtra(SprayingFinishActivity.EXTRA_FINISH_ACTION)) {
SprayingFinishActivity.ACTION_SUPPLEMENT -> {
runOnUiThread {
binding.hint.text = "拍照中,请稍后..."
}
isPhoto = true
takePhoto()
}
SprayingFinishActivity.ACTION_SUBMIT -> {
SprayingPhotoManager.clear()
finish()
}
}
}
private val listener = object : OfflineCmdListener {
override fun onOfflineCmd(cmd: String) {
@ -91,7 +112,9 @@ class SprayingResultActivity :
fun rest() {
manualResultLauncher.launch(Intent(this, SprayingManualResultActivity::class.java))
}
fun taskFinish(){}
fun taskFinish() {
finishLauncher.launch(Intent(this, SprayingFinishActivity::class.java))
}
private val photoCallbackId = UUID.randomUUID().toString()
@ -117,6 +140,7 @@ class SprayingResultActivity :
"相机异常".showMessage()
}
} else {
SprayingPhotoManager.addPhoto(path)
startActivity(
Intent(
this@SprayingResultActivity, SprayingOCRActivity::class.java