【问题标题】:Is there a way to call a method when the picture is taken拍照时有没有办法调用方法
【发布时间】:2019-09-26 07:19:56
【问题描述】:

我是移动开发的新手,我正在开发一个应用程序,对于该应用程序,我需要在拍摄照片的确切时刻获取时间。我想从服务器获取准确的时间,所以我需要调用一个方法,因为 exif 数据中的时间不够准确。我正在使用相机意图,但这显示了结果,需要在调用下一个代码之前进行确认。使用camera-intent拍照时有没有办法调用代码或方法。

这是我现在拥有的代码。我正在调用 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);
    }
}

所以我想调用一个方法来保存拍摄照片的确切时间。我也搜索过是否有办法摆脱这个确认屏幕,但似乎没有,但这也是一个很好的解决方案。

【问题讨论】:

标签: android android-camera-intent


【解决方案1】:

我不确定,但您可以创建一种在后台每秒调用一次的方法

Handler handler = new Handler();
int delay = 1000; //milliseconds

handler.postDelayed(new Runnable(){
    public void run(){
        //do something
        handler.postDelayed(this, delay);
    }
}, delay);

当你调用相机打开点击然后你需要观察是否有一些存储增量发生在 DCIM 文件夹或存储中。直接我不这可能在系统相机中,或者您可以在您的应用程序中使用相机 api

【讨论】:

    【解决方案2】:

    因为您使用的是原生相机应用程序,所以您对它的控制较少。 也许你可以实现自己的相机应用程序,当你在应用程序中拍照时,你可以轻松地做你提到的事情。

    【讨论】:

      【解决方案3】:

      使用 RESULT_OK 调用 onActivityResult 的那一刻意味着您已成功拍摄照片,因此您可以使用 System.currentTimeMillis() 在 onActivityResult 中获取当前时间。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-01-17
        • 1970-01-01
        • 2010-12-24
        • 1970-01-01
        • 1970-01-01
        • 2023-03-24
        • 2013-09-20
        相关资源
        最近更新 更多