我有一个Android服务的想法,我需要能够在他们被拍摄之前访问图片,以节省GPS位置,此外,我还需要立即访问图片。
有没有正确的方法呢?
请擅长: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);
}
}
由于背景限制,您无法执行此操作。从Android O开始,implicit broadcasts不再通过a few exceptions(不包括photo taken broadcast)提供给应用程序。如果您想要监控其他应用程序保存的文件和照片,您需要使用该应用程序的内容提供商(如果有),或者监控您可以通过Context.getExternalMediaDirs()获取的媒体文件夹。