use*_*928 4 android-intent google-drive-api
我尝试通过手动启动Google驱动器(安装在设备上)从我的Android应用程序上传文件.我尝试使用Intent.createChooser
它来发送文件附件,并且工作正常.但我需要上传特定意图的文件(例如Dropbox,仅限Google云端硬盘).所以我更改了代码并尝试按以下方式将文件上传到Google云端硬盘,但没有成功,只有Google云端硬盘应用在设备上打开,没有上传文件:
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);
Run Code Online (Sandbox Code Playgroud)
我们可以通过手动打开意图上传PDF文件吗?
use*_*928 16
我在研究后得到了执行以下代码的解决方案:
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);
Run Code Online (Sandbox Code Playgroud)
类似地,我们可以使用其他共享意图和几个意图的相应包名称如下:
对于gmail共享,我们需要使用以下类型的代码:
Uri zipUri = Uri.parse("file://sdcard/sdcard0/test.zip");
String[] emailArr = {"test@gmail.com"};
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);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7584 次 |
最近记录: |