2014-07-15 24 views
2

我做一個Android應用程序。目標如下。Android的入門PDF文件的路徑,從我的應用程序

目的:

如果用戶希望在他們的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); 
      . 
      . 
     } 
    } 
} 

問題:

如果我打開的檔案總管我得到了正確的URI爲 「文件:///storage/emulated/0/Download/test.pdf」 PDF。以便我可以識別爲PDF或圖像。

但是如果我打開從谷歌驅動程序的PDF文件時,我收到以下URI「內容://com.google.android.apps.docs.storage.legacy/enc%3Du4Ss-AYnclkKv-lfNmA3wY7YBbb_JxRfayDTvfQfHWokHkoy %0A「。所以我無法識別選定的文件。

我怎樣才能從上面的URI的文件類型。幫我解決這個問題?

+0

不是問題的答案和一個題外話,但我認爲,它被認爲是更好地爲不同類型的聲明不同的意圖過濾器標籤。 – hypd09

+2

ContentResolver.getType ... – Selvin

回答

1

我怎樣才能得到文件類型從上面的URI

由於Selvin指出,調用getType() on a ContentResolver()。您可以通過調用獲得ContentResolvergetContentResolver()任何Context,如您Activity

+0

感謝您的回覆。我現在得到了文件類型。但是,我怎麼能得到從URI的文件路徑「內容://com.google.android.apps.docs.storage.legacy/enc%3Du4Ss-AYnclkKv-lfNmA3wY7YBbb_JxRfayDTvfQfHWokHkoy%0A」 – SKK

+0

@karthi:沒有「文件路徑」。使用'ContentResolver'上的'openInputStream()'來讀取內容。 – CommonsWare

相關問題