2016-11-04 44 views
1

我正在配置我的應用程序以接收來自其他應用程序的數據,如下所述:https://developer.android.com/training/sharing/receive.html分享到android應用程序 - 限制爲「text/plain」

我用下面的意圖過濾器來接收純文本:

<intent-filter> 
    <action android:name="android.intent.action.SEND" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="text/plain" /> 
</intent-filter> 

然而,我的應用程序獲取文本文件的共享菜單(除純文本)上市,被稱爲與text/*儘管我專門列出了text/plain。任何想法如何限制傳入的數據到text/plain,並避免在用戶共享文本文件時在共享菜單中列出?

+0

當你說你只想接收純文本,你的意思就像你的電子郵件中的文本並分享它?你能解釋你如何選擇文本? – user1506104

+0

@ user1506104 - 純文本可以是用戶選擇的任何文本。這對我來說很好。我遇到的問題是,當用戶共享文本文件時,我的應用程序也會列出。 –

回答

0

AFIK,文本文件和選定的文本將觸發相同的行爲。我的建議可能不是直接解決您的問題。但是,爲了讓您的應用程序能夠使用選定的文本和/或文本文件,我能想到的是最接近的事情。因此,您的應用程序仍然會列在文本文件的共享菜單中。

在你的應用程序,檢查共享數據是文本文件或選定的文本,只需檢查

getIntent().getExtras().getString(Intent.EXTRA_STREAM)

這應該給你一個文件名,如果用戶共享一個文本文件中的值。 Null而不是如果用戶共享選定的文本。

+0

我已經有一個簡單的方法來根據接收到的意圖的類型('text/plain' vs'text/*')區分純文本和文本文件。正如問題所述,我試圖做的是避免在共享文本文件時被列出。 –