http://docs.blackberry.com/tr-tr/developers/deliverables/16464/Detect_when_img_is_added_or_removed_file_sy_zh-cn_1054347_11.jsp
- 导入所需的类。
import net.rim.device.api.system.Application; import net.rim.device.api.io.file.FileSystemJournalListener;
- 实施 FileSystemJournalListener 接口。
class FileExplorerDemoJournalListener implements FileSystemJournalListener {
- 创建表示上次更新序列号的实例变量。
private long _lastUSN;
- 实施 FileSystemJournalListener.fileJournalChanged() ,以在发生新文件系统事件时接收通知。
public void fileJournalChanged() {
- 在 fileJournalChanged() 实施内,获取日志将使用的下个 USN。
long nextUSN = FileSystemJournal.getNextUSN();
- 创建 for 循环,以便向后迭代,从日志将使用的下个 USN 至日志将使用的最后一个 USN。 最佳实践是一旦 BlackBerry® 设备应用程序检索日志条目,就停止迭代。
for (long lookUSN = nextUSN - 1; lookUSN >= _lastUSN && msg == null; --lookUSN) {
- 在 for 循环中,检索与当前 USN 对应的日志条目。
FileSystemJournalEntry entry = FileSystemJournal.getEntry(lookUSN);
- 创建将检查日志条目是否为 Null 的 IF 子句。 如果为 Null,则新文件系统日志条目不存在。
if (entry == null) { break; }
- 如果日志条目存在,请获取与该条目关联的路径。
String path = entry.getPath();
- 创建将检查条目路径是否不为 Null 的 IF 子句。
if (path != null) {
- 创建将检查文件系统事件是否涉及图像文件的 IF 子句。
if (path.endsWith("png") || path.endsWith("jpg") || path.endsWith("bmp") || path.endsWith("gif") ){
- 如果在文件系统中添加或删除文件,请执行相应操作。
switch (entry.getEvent()) { case FileSystemJournalEntry.FILE_ADDED: //either a picture was taken or a picture was added to the BlackBerry device break; case FileSystemJournalEntry.FILE_DELETED: //a picture was removed from the BlackBerry device; break;
- 调用 Application.addFileSystemJournalListener() ,以将监听器添加至 BlackBerry 设备应用程序。 在此示例中,FileExplorerDemo 扩展 UIApplication ,而后者扩展 Application 。
this.addFileSystemJournalListener(new FileExplorerDemoJournalListener());