Android 不理解意向过滤器

Android 不理解意向过滤器,android,android-intent,intentfilter,Android,Android Intent,Intentfilter,我正在尝试使用Google Drive中的“发送副本”菜单项将二进制文件复制到我自己定制的内容,而不是标准的Google Drive 我看了一下Google Drive使用intent Intercept发送的意图,基本上是这样的 ACTION-android.intent.ACTION.SEND 数据-空 MIME-应用程序/八位字节流 URI-intent:intent;action=android.intent.action.SEND;类型=应用程序/八位字节流;launchFlags=0

我正在尝试使用Google Drive中的“发送副本”菜单项将二进制文件复制到我自己定制的内容,而不是标准的Google Drive

我看了一下Google Drive使用intent Intercept发送的意图,基本上是这样的

ACTION-android.intent.ACTION.SEND 数据-空 MIME-应用程序/八位字节流 URI-intent:intent;action=android.intent.action.SEND;类型=应用程序/八位字节流;launchFlags=0x1b080000;终止 FLAGS-在任务重置时标记活动清除 标志\u活动\u前进\u结果标志\u接收器\u已注册\u仅\u启动前标志\u活动\u前一个\u为顶部标志\u接收器\u前台 Extras-1类:android.net.Uri$hierarchycaluri键:android.intent.extra.STREAM值:content://com.google.android.apps.docs.storage.legacy/enc%3Dy1Gjnka2NiGyk8sKV0CwRjnjL3WimTTirLdLn58FBZ7yVAJ2MPJNL_ZYQFzzl0a3pi0bnikAy29Y%0AcprYV_o8bxcPbb8r0Vv_wfq89BjBp1nQHOPUT8CiHQEzPwVwRhvByYmijg%3D%3D%0A 我的应用程序相关活动中的意图过滤器是:

    <intent-filter>
        <action android:name="android.intent.action.SEND" />

        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />

        <data
            android:mimeType="application/octet-stream" />
    </intent-filter>
在一些混乱之后,它现在确实出现在谷歌硬盘的“发送文件”列表中

如果我选择我的应用程序作为目标,它会出现在相关活动的onCreate中,我可以通过getIntent获得意图OK,但是getData-这是我用于其他位置的ACTION\u VIEW intents的-返回null,这可能并不奇怪,因为上面的意图中数据被列为null

在我有限的知识和阅读过“从其他应用程序接收简单数据”文档后,我根本不确定下一步该怎么做。如何访问文件数据以便复制它

下一个问题,假设我成功地回答了这些问题,如果我想从Google Drive一次发送多个文件,在我看来,它将使用send_multiple intent,那么我将如何访问每个文件数据

如何访问文件数据以便复制它

指向共享内容的Uri位于额外流中。调用getParcelableExtra以获取它。然后,您可以使用ContentResolver和openInputStream读入该Uri标识的内容

如何获得额外费用的价值包含在合同中

然后,它将使用SEND_MULTIPLE intent,那么如何访问每个文件和数据呢

额外的_流现在将是Uri值的列表。调用getParcelableArrayListExtra以获取它。然后,您可以迭代该列表,并使用ContentResolver和openInputStream来获取Uri标识的内容

如前所述,如何获得额外费用所涵盖的价值