【问题标题】:Android Getting pdf file's path from my appAndroid从我的应用程序获取pdf文件的路径
【发布时间】:2014-09-05 12:44:59
【问题描述】:

我正在做一个安卓应用程序。目标如下。

目标:

如果用户想在他们的 android 移动设备的任何地方共享 pdf(或)图像文件形式,他们将在共享列表中选择我的应用程序。我想知道,用户是选择了 pdf 文件还是图像。为此,我使用了以下代码。

AndroidManifest.xml

<activity
    android:name="com.share.FileActivity"
    android:screenOrientation="portrait"
    android:theme="@android:style/Theme.NoTitleBar" >
    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <data android:mimeType="application/pdf" />                
        <data android:mimeType="image/*" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

FileActivity.java中,获取选中文件的URI

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Intent myintent = getIntent();
    Bundle extras = myintent.getExtras();
    String action = myintent.getAction();
    if (Intent.ACTION_SEND.equals(action)) {
        if (extras.containsKey(Intent.EXTRA_STREAM)) {
            URI uri = (Uri) extras.getParcelable(Intent.EXTRA_STREAM);
            .
            .
        }
    }
}

问题:

如果我从文件资源管理器中打开 pdf,我会得到正确的 URI,即“file:///storage/emulated/0/Download/test.pdf”。这样我就可以识别为pdf或图像。

但如果我从 google drive 应用程序打开 pdf 文件,我会收到以下 URI“content://com.google.android.apps.docs.storage.legacy/enc%3Du4Ss-AYnclkKv- lfNmA3wY7YBbb_JxRfayDTvfQfHWokHkoy%0A”。所以我无法识别所选文件。

如何从上述 URI 中获取文件类型。帮我解决这个问题?

【问题讨论】:

  • 不是答案和题外话,但我认为为不同类型声明不同的意图过滤器标签会更好。
  • ContentResolver.getType ...

标签: android file pdf mime-types intentfilter


【解决方案1】:

如何从上面的 URI 中获取文件类型

正如 Selvin 所说,请致电 getType() on a ContentResolver()。您可以通过在任何Context(例如您的Activity)上调用getContentResolver() 来获得ContentResolver

【讨论】:

  • 感谢您的回复。我现在得到了文件类型。但是如何从 URI “content://com.google.android.apps.docs.storage.legacy/enc%3Du4Ss-AYnclkKv-lfNmA3wY7YBbb_JxRfayDTvfQfHWokHkoy%0A”获取文件路径
  • @karthi:没有“文件路径”。在ContentResolver 上使用openInputStream() 读取内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-24
  • 1970-01-01
  • 1970-01-01
  • 2015-03-16
  • 2015-06-21
  • 1970-01-01
相关资源
最近更新 更多