我们正在使用基于Android的手机来拍摄诸如电和天然气之类的电表。我们需要为每个快照加上时间戳,因为这是政府部门接受快照的基本要求。请指出我们如何在android手机中对快照进行时间戳记。
答案 0 :(得分:0)
方法1 :
在完成捕捉后,一旦进入 onActivityResult()
方法,就可以生成并保存时间戳。
步骤1 :触发Camera Intent
,以便Camera Activity
可以打开。
第2步:捕获快照(图像)后,将调用OnActivityResult()
方法。
第3步:在此方法内,您可以生成当前时间戳,如下所示(代码段位于 Kotlin 中):
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?{
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == REQUEST_CAMERA && resultCode == Activity.RESULT_OK) {
val timeStamp = SimpleDateFormat("your_desired_timestamp_pattern",Locale.ENGLISH).format(Date())
saveCurrentTimeStamp(timeStamp)
}
第4步:将该 timeStamp 保存在诸如数据库之类的持久性存储中。
我建议将捕获的图像(快照)文件本身保存为timeStamp(捕获它们的时刻)的名称。
尽管此方法未提供捕获快照的确切间隔,但实际延迟仅为几秒钟。
方法2 :
另一种方法是为 BroadCastReceiver
实现 ACTION_NEW_PICTURE
,然后在onReceive()
方法内部保存timeStamp
更新-ACTION_NEW_PICTURE
在 Android N 中已弃用,但后来他们在 Android O 中将其重新带回,但仅适用于已注册的接收者。