我是移动开发的新手,我正在开发一个应用程序,对于该应用程序,我需要在拍摄照片的确切时间获取时间。我想从服务器获取准确的时间,所以我需要调用一个方法,因为exif数据中的时间不够准确。我使用的是摄像头意图,但这显示了结果,需要确认后才能调用下一个代码。使用相机意图拍摄照片时,是否可以调用代码或方法?
这是我现在拥有的代码。我调用dispatchTakePictureIntent,该方法将启动意图。然后,onActivityResult将获取摄影机的结果,但是在确认之后调用此方法的时刻。
public void dispatchTakePictureIntent(View view) {
PackageManager pckMgr = getPackageManager();
if (pckMgr.hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY)){
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
} else {
Toast.makeText(getApplicationContext(), "Camera werkt niet ",Toast.LENGTH_LONG).show();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (RESULT_OK == resultCode) {
// Get Extra from the intent
Bundle extras = data.getExtras();
// Get the returned image from extra
Bitmap bmp = (Bitmap) extras.get("data");
imageView = (ImageView) findViewById(R.id.imageView6);
imageView.setImageBitmap(bmp);
}
}
所以id喜欢调用一种方法,在该方法中我可以保存拍摄照片的确切时间。我还搜索了是否有摆脱此确认屏幕的方法,但似乎没有,但是这也是一个很好的解决方案。
答案 0 :(得分:0)
我不确定,但是您可以创建一个在后台每秒调用一次的方法
Handler handler = new Handler();
int delay = 1000; //milliseconds
handler.postDelayed(new Runnable(){
public void run(){
//do something
handler.postDelayed(this, delay);
}
}, delay);
当您打开相机呼叫按钮时,然后您需要观察DCIM文件夹或存储中是否发生了一些存储增量。我不直接在系统相机中使用它,或者您可以在应用中使用相机API
答案 1 :(得分:0)
由于使用的是本机摄像头应用程序,因此对其的控件较少。 也许您可以实现自己的相机应用程序,并且在应用程序中拍照时,您可以轻松完成自己提到的事情。
答案 2 :(得分:0)
使用RESULT_OK调用onActivityResult的那一刻意味着您成功捕获了照片,因此可以使用System.currentTimeMillis()获取onActivityResult中的当前时间。