Android 从另一个未上传文件的应用程序启动 Google Drive 应用程序

2024-04-28

我尝试通过手动启动 Google 驱动器(安装在设备上)从 Android 应用程序上传文件。我尝试使用此发送Intent.createChooser其上传文件附件工作正常。但我需要出于特定目的上传文件(例如 Dropbox、仅限 Google Drive)。所以我更改了代码并尝试按照以下方式将文件上传到Google Drive,但没有成功,只有Google Drive应用程序在设备上打开,没有上传文件:

PackageManager pm = this.getPackageManager();
Intent intent = pm.getLaunchIntentForPackage("com.google.android.apps.docs");
intent.setType("application/pdf");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://sdcard/sdcard0/test.pdf"));
intent.putExtra(Intent.EXTRA_SUBJECT, "attach a file test");
intent.addCategory(Intent.ACTION_ATTACH_DATA);
startActivity(intent);

我们可以像上面那样通过手动打开intent来上传PDF文件吗?


经过研究,我得到了执行以下代码的解决方案:

import android.support.v4.app.ShareCompat;

Uri pdfUri = Uri.parse("file://sdcard/sdcard0/test.pdf");                
Intent shareIntent = ShareCompat.IntentBuilder.from(this)
                                     .setText("Share PDF doc")
                                         .setType("application/pdf")
                                         .setStream(pdfUri )
                                         .getIntent()
                                 .setPackage("com.google.android.apps.docs");
startActivity(shareIntent);

同样,我们可以用于其他共享意图,几个意图对应的包名称如下:

  • com.dropbox.android = Dropbox
  • com.android.bluetooth = 蓝牙
  • com.android.email = 电子邮件
  • com.google.android.gm = Gmail
  • com.microsoft.skydrive = Skydrive
  • com.google.android.apps.docs = Google 云端硬盘

对于 Gmail 共享,我们需要使用以下类型的代码:

Uri zipUri = Uri.parse("file://sdcard/sdcard0/test.zip");  
String[] emailArr = {"[email protected] /cdn-cgi/l/email-protection"};              
Intent shareIntent = ShareCompat.IntentBuilder.from(this)
                                  .setText("Share ZIP doc")
                                  .setType("application/zip")
                                  .setEmailTo(emailArr)
                                  .setStream(zipUri)
                                  .setSubject("Share zip doc")
                                  .setText("Sent with email app.")
                                  .getIntent()
                           .setPackage("com.google.android.gm");
startActivity(shareIntent);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 从另一个未上传文件的应用程序启动 Google Drive 应用程序 的相关文章

  • Google Drive/OAuth - 无法弄清楚如何获得可重复使用的 GoogleCredentials

    我已经成功安装并运行名为 DriveCommandLine 的 Google Drive 快速启动应用程序 https developers google com drive quickstart 我还对其进行了一些调整 以获取我的云端硬盘
  • 共享图像的正确方法(使用意图)

    我在应用程序中创建图像 并希望共享这些社交网络 facebook 邮件应用程序 gmail 以及其他可以 接收 图像的应用程序 问题的根源 我认为 是我不想使用外部存储作为图像的基础 我想使用我的数据文件夹或缓存文件夹 因为它们都不需要任何
  • 如何获取当前显示的片段?

    我正在Android中玩fragment 我知道我可以使用以下代码更改片段 FragmentManager fragMgr getSupportFragmentManager FragmentTransaction fragTrans fr
  • 电子表格的授权范围

    我创建了一个独立的 Google Apps 脚本 它不属于任何文档 该脚本会以固定的时间间隔自动触发 这个脚本 创建几个文件夹 如果它们不存在 创建一个 Google 电子表格 如果不存在 读过说 电子表格 更新日历事件 我注意到 当我第一
  • 如何检查 GAS 中是否存在文件(通过 id)

    我知道有关如何检查文件是否存在的问答by name using hasnext 不过我需要检查一下按文件 ID 最好没有高级 Drive API 披露 我写了一个基于错误处理的解决方案 function ifFileExists id tr
  • Google api - 如何获取表单中的文本?

    当我打电话时getContent 在表单文件上 它返回空 null 如何获取 Google Drive 中表单文件的文本内容 你是对的 你需要使用表格服务 https developers google com apps script re
  • 关于Android自定义权限的几个问题

    我正在学习 Android 编程 我已经了解了自定义权限的概念 根据我的理解 这是自定义权限的工作原理 Base app 可以通过声明自定义权限 即使用
  • 错误:专用 IP 需要 invalid_request device_id 和 device_name

    我正在使用 localhost 8080 使用 Google Drive API 进行开发 突然我想在我的本地部署沙箱中测试它 它的IP地址为 192 168 1 1 8080 据此 我更改了开发人员控制台客户端回调 URL 中的凭据 我正
  • 将数据从意图服务传递到活动

    我有一个广播接收器 正在调用intentservice 我想将intentservice中收到的数据发送到一个活动 String s extras getString Notice 我想将此收到的字符串发送到一个新活动 Override p
  • Nexus 10 (Android 4.4.2) 中未设置 FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY

    我有一个主要活动 A 它将调用另一个活动 B 其 oncreate 如下所述 当我在活动 B 中按主页按钮并按最近使用的应用程序时 从未设置标志 FLAG ACTIVITY LAUNCCHED FROM HISTORY 我使用的是三星 Ne
  • SocketTimeoutException:插入 Google 云端硬盘时读取超时 - 是否可以重试?

    如同Java Google Drive SDK File insert execute 上的 SocketTimeoutException https stackoverflow com questions 17583630 java go
  • 如何使用 Intent.ACTION_GET_CONTENT 过滤掉不需要的文件

    我使用intent ACTION GET CONTENT 来允许用户仅选择图像或视频文件 这就是我准备意图的方式 Intent intent new Intent Intent ACTION GET CONTENT intent setTy
  • 使用 Android Intent 发送基于 HTML 的电子邮件正文

    我需要使用 android Intent extra 将基于 HTML 的内容发送到电子邮件应用程序 它接受一些标签 例如 br 但它没有显示任何锚链接或 h1 其显示像简单的文本 EDITED I have tried with gmai
  • Google Drive Api 在发布应用程序后停止工作

    我在我的应用程序中使用 google Drive api 当我使用 apk 文件安装它时 它在调试和发布版本上都能正常工作 但是 如果我在 Playstore 上发布相同版本的 apk 然后从那里下载它 我将无法登录 Google 关于这个
  • Android - 从选项卡内的活动内切换选项卡

    目前我有一个 TabHost 它实现了 3 个选项卡 每个选项卡包含一个单独的活动 我的问题是如何在位于选项卡主机内的活动之一中的选项卡之间进行切换 我到处寻找但未能找到这个问题的真正答案 经过长时间与这个问题的斗争 我已经找到了在使用基于
  • android tabwidget意图选项卡刷新每次点击

    我想使用具有意图的子选项卡创建一个选项卡 以便当用户单击选项卡意图时刷新 每次用户单击选项卡时 我想刷新并调用子意图选项卡的 oncreate 方法 public class Tabs3 extends TabActivity Overri
  • Android应用程序中的模式输入

    我想知道是否有其他替代方案可以替代 Android 上平庸的 EditText 密码输入 是否有 API 或开源代码可以集成到我的应用程序中 类似于锁屏图案解锁 Intent 可能会返回哈希值 数字 字符串或代表用户输入的模式的任何内容 我
  • 为什么对gapi.client.drive.realtime.get的响应为空?

    下面是成功进行身份验证的页面 然后尝试使用drive realtime get 方法以三种方式获取现有实时文档的JSON 导出 console log 调用的结果显示在注释中 ID 为 EXISTING FILE ID 的文件存在 并且已使
  • 从 google Drive 自行下载 xlsx 文件

    所以 我正在尝试制作一个小脚本 它将使用谷歌驱动器API下载一个Excel文件 通过遵循谷歌API教程 我遇到了两个错误 无法读取未定义的 on 属性 和 请求的转换是不支持 这是代码 const fs require fs const r
  • 有 Google Keep API 吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Google Keep 有 API 吗 我想为 Google Keep 制作一个 Windows 8 应

随机推荐