我想将pdf,doc文件从某个应用程序(例如google drive,dropbox)分享到我的Android应用程序。
我尝试了什么
我可以使用这些代码段将图像共享到我的应用程序中,我可以使用AndroidManifest.xml
中的以下代码获取该图像路径。
<intent-filter>
<action android:name="android.intent.action.SEND" />
<data android:mimeType="image/*" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
在我的活动中
Intent myintent = getIntent();
Bundle extras = myintent.getExtras();
String action = myintent.getAction();
// if this is from the share menu
if (Intent.ACTION_SEND.equals(action)) { if (extras.containsKey(Intent.EXTRA_STREAM)) {
// Get resource path
Uri uri = (Uri) extras.getParcelable(Intent.EXTRA_STREAM);
String filename = parseUriToFilename(uri);
if (filename != null) {
doing some process here//
}
}
}
public String parseUriToFilename(Uri uri) {
String selectedImagePath = null;
String filemanagerPath = uri.getPath();
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
if (cursor != null) {
// Here you will get a null pointer if cursor is null
// This can be if you used OI file manager for picking the media
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
selectedImagePath = cursor.getString(column_index);
}
if (selectedImagePath != null) {
return selectedImagePath;
}
else if (filemanagerPath != null) {
return filemanagerPath;
}
return null;
}
我真正需要的是
使用上面的代码我可以获得共享的图像路径,以便我可以执行我的任务。我想将.pdf,.doc文件共享到我的应用程序中,为此我需要文件的确切位置。我怎样才能得到pdf,doc文件路径,如果我将这些文件共享到我的应用程序中。
答案 0 :(得分:0)
使用上面的代码我可以获得共享的图像路径,以便我可以执行我的任务
不,您可以获取某些图像的路径,这些图像恰好由MediaStore
编制索引。并非所有图像都由MediaStore
编入索引。并非所有图像都存储在应用可以访问的路径的文件中。
更一般地说,not every content://
Uri
that you will find will be represented by a file that you can access。相反,您需要使用适当的ContentResolver
方法来使用内容,例如openInputStream()
。
我想将.pdf,.doc文件分享到我的应用程序中,为此我需要文件的确切位置
对于那些碰巧也被MediaStore
编入索引的文件,欢迎您尝试使用与MediaStore
索引的图像相同的解决方案。