【问题标题】:Intent from Google Drive when file is selected选择文件时来自 Google Drive 的意图
【发布时间】:2016-02-27 00:03:43
【问题描述】:

自从第一次为 Android 2.3 开发以来,我的应用程序使用了在用户 PC 上生成的 SQLite 文件,它使用以下意图来通知用户已在 Dropbox 或 Drive 中选择了其中一个文件。 (我实际上在清单中有几个类似的意图来支持不同级别的目录层次结构。):

    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="file"
                android:mimeType="application/octet-stream"
                android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\.gedstar"
                android:host="*" />
    </intent-filter>

当应用收到此意图时,它会使用它打开文件并将其复制到主文件存储中自己的特定目录。很久以前,我不记得我从哪里得到这个结构,但到现在它仍然有效。但是,从 Android 6.0 开始,它不再适用于 Google Drive,并且我收到“不支持的文件类型”消息。 Dropbox 还可以。

我假设 Drive 发出的 Intent 最近发生了变化。有谁知道它现在是如何实现的,以便我可以提供正确的意图过滤器?

【问题讨论】:

  • “我收到“不支持的文件类型”消息”——从什么获得?您的意思是云端硬盘找不到您的活动吗?如果是这样,我会假设 Drive 正在转向通过 ContentProvidercontent 方案提供文件。
  • 是的,该消息来自 Drive 应用程序,在该应用程序中进行文件选择。
  • 驱动器不再支持 file:// uris。另请参阅:stackoverflow.com/questions/35351652/….

标签: android android-intent google-drive-android-api


【解决方案1】:

我发现了一个名为 Intent Intercept 的应用程序,它可以让我做到顾名思义:在 Drive 应用程序中选择我的文件时拦截 Drive 发出的 Intent。根据其他 Drive 文档,这完全不是我所期望的,但至少我现在已经弄清楚了这部分,并且可以获得一个内容 URI 来使用。

【讨论】:

  • 我还能够弄清楚如何使用内容 URI 来正确传输我的数据。
猜你喜欢
  • 1970-01-01
  • 2013-07-27
  • 2015-11-03
  • 1970-01-01
  • 1970-01-01
  • 2020-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多