Android 如何使用SAF在服务器(文件云)上实现文件更新?

Android 如何使用SAF在服务器(文件云)上实现文件更新?,android,cloud,saf,Android,Cloud,Saf,我的移动云应用程序从远程服务器获取所有内容,它应该使用Storage Access Framework并实现DocumentsProvider,以便在打开或保存时支持SAF的应用列表中的第三方应用程序(如Microsoft Office)中显示。从SAF应用程序打开文件并在第三方应用程序(例如Microsof Office)中修改后,应在服务器上覆盖此文件,但我在SAF框架中找不到相应的方法 现在我看到了实现这一点的唯一方法: 在应用程序文件夹或SD卡中的临时位置下载文件 DocumentsPr

我的移动云应用程序从远程服务器获取所有内容,它应该使用Storage Access Framework并实现DocumentsProvider,以便在打开或保存时支持SAF的应用列表中的第三方应用程序(如Microsoft Office)中显示。从SAF应用程序打开文件并在第三方应用程序(例如Microsof Office)中修改后,应在服务器上覆盖此文件,但我在SAF框架中找不到相应的方法

现在我看到了实现这一点的唯一方法:

  • 在应用程序文件夹或SD卡中的临时位置下载文件
    DocumentsProvider.openDocument()
  • 设置此文件的文件观察者(FileObserver)
  • 捕获CLOSE_WRITE事件并尝试将此修改后的文件发送到服务器
  • 如果出现任何网络错误或应用程序已重新启动,请在应用程序数据库中存储有关此文件的信息,以便稍后发送此文件
  • 你能提供更简单的方法来达到预期的效果吗?或者你看到我的方法中有一些错误。dropbox应用程序中已经实现了类似的功能。谢谢

    返回一个,如果使用,则会收到对的回调-此时,您知道外部应用程序已完成该文件,您可以启动同步操作

    // A file representing the local copy of the file
    File file = ...;
    return ParcelFileDescriptor.open(
        file,
        ParcelFileDescriptor.parseMode(mode),
        new Handler(), // use the current thread
        onCloseListener);