Java 监视文件夹中的新文件

Java 监视文件夹中的新文件,java,android,Java,Android,我正在制作一个可以拍照的应用程序。如果将拍摄的照片添加到我的“照相机”文件夹中,我希望显示一条烤面包机消息 然而,在我当前的代码中,当我点击相机按钮时,烤面包机就会出现,而不用等待拍照 下面是拍摄照片的源代码: static final int REQUEST_IMAGE_CAPTURE = 1; private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 0; public void onClickbtnCamera(View

我正在制作一个可以拍照的应用程序。如果将拍摄的照片添加到我的“照相机”文件夹中,我希望显示一条烤面包机消息

然而,在我当前的代码中,当我点击相机按钮时,烤面包机就会出现,而不用等待拍照

下面是拍摄照片的源代码:

static final int REQUEST_IMAGE_CAPTURE = 1;
private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 0;
public void onClickbtnCamera(View v){
  Intent imageIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
  String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
  Uri uriSavedImage=Uri.fromFile(
    new  File("/storage/emulated/0/DCIM/Camera","QR_"+timeStamp+ ".png"));
  imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
  startActivityForResult(imageIntent, 1);
}
我想展示的烤面包机:

Toast toast= Toast.makeText(getApplicationContext(),
             "Picture was taking", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP|Gravity.CENTER_HORIZONTAL, 100, 0);
toast.show();

您能告诉我为什么我的代码无法完成预期的任务吗?

仅监视文件夹的一部分:

for (;;) {

// wait for key to be signaled
WatchKey key;
try {
    key = watcher.take();
} catch (InterruptedException x) {
    return;
}

for (WatchEvent<?> event: key.pollEvents()) {
    WatchEvent.Kind<?> kind = event.kind();

    // This key is registered only
    // for ENTRY_CREATE events,
    // but an OVERFLOW event can
    // occur regardless if events
    // are lost or discarded.
    if (kind == OVERFLOW) {
        continue;
    }

    // The filename is the
    // context of the event.
    WatchEvent<Path> ev = (WatchEvent<Path>)event;
    Path filename = ev.context();

    // Verify that the new
    //  file is a text file or a directory using the path filename from above.

}

// Reset the key -- this step is critical if you want to
// receive further watch events.  If the key is no longer valid,
// the directory is inaccessible so exit the loop.
boolean valid = key.reset();
if (!valid) {
    break;
}
(;;)的
{
//等待钥匙发出信号
监视键;
试一试{
key=watcher.take();
}捕捉(中断异常x){
返回;
}
for(WatchEvent事件:key.pollEvents()){
WatchEvent.Kind-Kind=event.Kind();
//此密钥仅注册
//对于输入和创建事件,
//但是溢出事件可以
//不管事件是否发生
//丢失或丢弃。
如果(种类==溢出){
继续;
}
//文件名是
//事件的背景。
WatchEvent ev=(WatchEvent)事件;
路径文件名=ev.context();
//验证新的
//文件是一个文本文件或使用上面路径文件名的目录。
}
//重置键——如果您想重置,此步骤至关重要
//接收进一步的监视事件。如果密钥不再有效,
//目录不可访问,请退出循环。
布尔有效值=key.reset();
如果(!有效){
打破
}
}