4
我正在製作一個能夠上傳單個或多個文件或文件夾的應用程序。意圖過濾器的定義如下:Android接收共享文本文件但不共享文本內容
<activity android:name=".UploadActivity" android:launchMode="singleTop" android:theme="@style/Theme.Sherlock">
<intent-filter android:label="@string/upload_intent">
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:mimeType="application/*" />
<data android:mimeType="audio/*" />
<data android:mimeType="image/*" />
<data android:mimeType="media/*" />
<data android:mimeType="multipart/*" />
<data android:mimeType="text/*" />
<data android:mimeType="video/*" />
</intent-filter>
<intent-filter android:label="@string/upload_intent">
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:mimeType="*/*" />
</intent-filter>
</activity>
這對於Blackmoon文件資源管理器和Android 4.0.3圖庫非常有用。我的應用程序顯示在共享菜單中。但是,它也會在瀏覽器中顯示,當您長按URL並選擇共享頁面。
當我發送一個文本文件到我的應用程序,我得到這個:
getIntent().getAction() returns Intent.ACTION_SEND
getIntent().getType() returns "text/plain"
getIntent().getScheme() returns null
getIntent().getExtras().getString(Intent.EXTRA_STREAM) returns the filename
然而,從瀏覽器發送URL返回同樣的事情減去的Intent.EXTRA_STREAM。我可以在代碼中輕鬆檢測到這一點,並說「嗨,我無法上傳文本!」但我寧願改變意圖過濾器,以便它只在有EXTRA_STREAM時觸發。是否有可能這樣做?
(我嘗試使用安卓方案,但將不是一個文件和文本字符串區分被共享,因爲它們都是空...)
我也希望只用EXTRA_STREAM來觸發。你解決了這個問題嗎? – 2016-07-21 07:57:58
即時消息也感興趣。你是如何解決這個問題的? – user1506104 2016-11-04 20:28:04