快照上的时间戳

时间:2019-05-20 06:30:48

标签: android

我们正在使用基于Android的手机来拍摄诸如电和天然气之类的电表。我们需要为每个快照加上时间戳,因为这是政府部门接受快照的基本要求。请指出我们如何在android手机中对快照进行时间戳记。

1 个答案:

答案 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 中将其重新带回,但仅适用于已注册的接收者。