在其他应用程序使用的相机拍摄照片后如何访问它们

时间:2019-04-26 13:39:42

标签: android android-camera

我有一个使用Android服务的想法,并且我需要能够在拍摄照片之前访问它们,以保存GPSlocation,此外,此后我还需要立即访问照片。

有什么合适的方法吗?

2 个答案:

答案 0 :(得分:0)

请擅长:Photo Intents

  static final int REQUEST_IMAGE_CAPTURE = 1;

private void dispatchTakePictureIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
    startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
    }
}

此代码将打开应用选择器对话框。用户可以从那里选择他们喜欢使用的任何相机应用程序。

要获取照片结果,您需要覆盖 onActiviyResult 并获取所需的照片。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
      Bundle extras = data.getExtras();
      Bitmap imageBitmap = (Bitmap) extras.get("data");
      imageView.setImageBitmap(imageBitmap);
      }
  }

答案 1 :(得分:0)

由于背景限制,您无法执行此操作。从Android O开始,implicit broadcasts不再与a few exceptions(不包括photo taken broadcast)一起交付给应用程序。如果要监视其他应用程序保存的文件和照片,则需要与该应用程序的内容提供程序(如果有)一起使用,或者监视可以通过Context.getExternalMediaDirs()获取的媒体文件夹。