问题标签 [fileobserver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
6552 浏览

android - 文件观察器在一段时间后停止工作

我想听听文件系统中发生的变化。我正在使用 FileObserver。这是我的代码:

代码:

它在一段时间后停止。我没有得到确切的时间,但并不总是工作,尽管我在服务中调用 startWatching() 在一个循环中为 sdcard 的所有文件夹运行并为每个文件夹调用 startWatching()。它显示出不可预测的行为并停止侦听某些文件夹并为其他文件夹完美运行。

我希望你们帮助我。我尝试了很多方法,但它并不完美。难道我做错了什么?或者有其他方法可以做到这一点。

0 投票
2 回答
3144 浏览

android - FileObserver 实例正在被垃圾收集

我需要监视文件夹中的所有文件,当打开文件时(FileObserver.OPEN)我想执行一个方法。问题是有时,FileObserver 实例是由 GC 收集的,我试过这个:

但正在收集中。问题是,FileObserver 实例不被收集的最佳解决方案是什么?

谢了!!!

0 投票
1 回答
1056 浏览

android - Android FileObserver 在 USB 大容量存储模式下未调用 onEvent

我将 FileObserver 连接到 /mnt/sdcard/X 中的特定目录及其后代递归。当我从手机本身(例如从 Gallery 应用程序)修改此目录的内容时,我的 FileObserver 的 onEvent() 被正确调用并且一切正常。

当我通过 USB 连接到计算机并切换到大容量存储模式时,通过计算机对同一目录所做的所有更改都不会转换为 FileObserver 的事件。FileObserver 是否存在不能在 USB 大容量存储中工作的限制?

我尝试了“adb push xx /mnt/sdcard/X/xx”,并且这个更改也被正确记录了。

0 投票
1 回答
1408 浏览

android - 挂载SD卡后注册FileObserver

在我的应用程序中,我需要在拍摄一张照片时增加照片的数量。所以我FileObserverDCIM directory. 它监视拍摄的照片。

但是,FileObserver当我卸载我的 SD 卡时,这将停止观看,因为DCIM directory它不再存在。当我安装 SD 卡时,我有意图FileObserver后再次尝试注册。android.intent.action.EXTERNAL_APPLICATIONS_AVAILABLE但是FileObserver没有注册。

我的问题是:

  1. 安装SD卡后有没有其他方法可以制作FileObserver手表?
  2. 在某些设备(HTC)中,我在安装 SD 卡后没有任何意图。在这种情况下我可以使用什么方法?
  3. 有没有其他方法可以收听用户在他的内置软按钮相机中拍摄的照片。我不想建立自己的相机。

    /li>
0 投票
1 回答
1759 浏览

android - 如何在 Android 中使用文件观察器删除文件?

我正在尝试使用文件观察者删除文件。在我的代码中,如果任何文件被推入 SD 卡,它会触发一个创建事件。在那个事件中,我想删除那个文件。我正在尝试下面提供的代码,但我无法删除文件,因为正在复制文件。所以,我现在想在文件成功复制到 SD 卡后删除文件。

文件成功复制到 SD 卡时是否有任何事件通知?

请帮我。提前致谢。

0 投票
1 回答
3933 浏览

android - File Observer 无法通过意图服务工作

我找到了一个很棒的类来扩展抽象的 File Observer 类......

我在 IntentService 的 onCreate 中创建了三个观察者,如下所示:

不仅观察者不工作,而且 mkdir 功能也不工作。

有任何想法吗?谢谢!

0 投票
2 回答
364 浏览

android - File Observer 在调试模式下工作,但没有调试器就不会触发事件

我有一个作为递归文件观察器的类。它的作用是为父目录中的所有目录创建一个文件观察器,然后开始观察它们。我知道它可以工作,因为在调试模式下,它会在 logcat 中记录所有文件更改。但是,当我断开与调试器的连接并重新启动应用程序时,它会生成 Started 和 Set Up 日志,但它不会捕获任何文件更改。垃圾收集器是否有可能因为调试器不在现场观看而正在清理?我不认为这是真的,因为运行它的 Intentservice 永远不会消亡。

编辑:我将意图服务更改为不间断服务,同样的事情仍在发生。所以服务不会被破坏。

你怎么看?

谢谢

0 投票
2 回答
627 浏览

android - Android jelly bean 在视频开始时发送 CLOSE_WRITE 事件,而不是在视频结束时发送

我的代码使用FileObserver监听 DCIM 文件夹。

我使用的所有 Android 版本,除了 4.1.1,只发送了 1 个事件 - 当视频完成拍摄时。我认为这是正确的行为 - 持续写入并在完成后关闭。

不过,在 4.1.1(Galaxy Nexus 和 Nexus S)中,事件FileObserver.CLOSE_WRITE被发送 两次 - 视频开始时和结束时

照片也一样——事件被发送了两次——尽管它不是那么重要。

问题是我无法区分视频的开始事件和结束事件。

我可以尝试检查文件的大小,但由于事件可能已延迟(慢/忙设备),大小可能非常大。

知道为什么行为会改变吗?你知道相机的app源码在哪里吗?我可以试着看看历史来理解这一点。

0 投票
2 回答
480 浏览

java - 从 FileObserver 启动 IntentService

我正在编写一个使用 android 中的 fileobserver 的应用程序。当我以任何方式修改文件(创建等)时,它应该上传。为了实现一个队列并通过使用线程等来避免内存不足,我想使用一个 IntentService 一次上传一个文件,并在它失败时不执行,这样当用户重新连接时,它上传。但问题是:

Intent 的所有给定构造函数...

...不会工作。因为我在 FileObserver 的扩展中工作,所以没有可以接受的上下文来提供 Intent。无论如何我可以只使用字符串之一来启动 IntentService 吗?我不需要它返回任何东西,我只需要给它一些字符串就可以让它工作(文件名等)或者有另一种方法可以启动 IntentService。这个真的让我难住了。

感谢您在高级方面的任何帮助!

编辑:好的。我尝试了很多情况,但都没有看到工作。意图服务不会被应用程序或来自服务类的基本上下文触发,这些服务类在调用它们时通过构造函数传递。这是我的应用程序的基本布局:

Login Activity 转到 Menu Activity,Menu Activity 启动 Service,Service 启动 Service Handler(请参阅 android 文档中的服务示例以了解它是什么)并通过构造函数传递上下文。Service Handler 启动 FileSync 并通过构造函数传递上下文。FileSync 将上下文保存在类变量中。FileSync 然后等待文件被修改,然后使用上下文启动 IntentService 以上传通过 Intent 请求的文件。我知道这真的很复杂,但这确实是我目前唯一能做到的方法。

0 投票
1 回答
1665 浏览

java - Android:FileObserver 不会收到有关 FS 更改的通知

我需要一直跟踪从整个文件系统中删除的图像和视频(即使我的 UI 应用程序没有运行),所以在手机启动后直接直到它关闭。为此,我正在使用服务和 FileObserver。不幸的是,下面附加的代码不起作用(我没有使用调试器来调试该方法

公共无效onEvent(int事件,字符串文件)

虽然我对 FS 做了一些更改......服务开始了,显然 onStarted() 方法被执行了......

请帮忙