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();
如果(!有效){
打破
}
}