2012-10-15 119 views
2

我想將廣播接收器用於使用ACTION_SEND類型的「隱式意圖」。廣播接收器ACTION_SEND未顯示

這仍然是非常基本的,但無論如何,我的應用程序/接收器已經不顯示,無論我嘗試哪個應用程序的「共享菜單」。從AndroidManifest.xml中

摘錄:

 <receiver 
     android:name=".SaveReceiver" > 
     <intent-filter 
      android:icon="@drawable/ic_launcher" 
      android:label="YourDrive" > 
      <action android:name="android.intent.action.SEND" /> 
      <category android:name="android.intent.category.DEFAULT" /> 

     </intent-filter> 
     <intent-filter 
      android:icon="@drawable/ic_launcher" 
      android:label="YourDrive" > 
      <action android:name="android.intent.action.SEND_MULTIPLE" /> 
     </intent-filter> 
    </receiver> 

我已經嘗試設置mime類型,但沒有什麼幫助。我是否必須設置特定的mimeType,或者稍後可以檢查它(處理內容時通過Java代碼)?我做錯了什麼,以便我的應用程序不顯示在所有應用程序的「共享菜單」中...

在此先感謝。

回答

4

我想使用廣播接收器的「隱式意圖」使用類型ACTION_SEND。

ACTION_SEND是一個活動動作,而不是一個廣播動作。您不能使用BroadcastReceiver接電話startActivity()

什麼我做錯了,讓我的應用程序並不適用於所有應用程序的「共享菜單」顯示...

您還沒有實施的活動。

http://developer.android.com/training/sharing/receive.html

+0

嗯,這個太爛了,我想......這嚴重限制usecases量。分享內容時,你並不總是想開始一項活動。 –

+0

@PaulPraet:「你並不總是希望在分享內容時開始一項活動」 - 目前使用的絕大多數「共享」方案都涉及用戶提供關於共享操作的更多信息。像收件人的地址,文件夾或標籤或任何其他內容,基於應用程序的發送需求。話雖如此,歡迎您創建一個處理共享操作的「Theme.NoDisplay」活動。 – CommonsWare

+0

是的,它似乎我將不得不,但我認爲這是一個黑客/解決方法。即使大多數應用程序確實會使用活動,我也不明白爲什麼Android會以另一種方式禁止它。 –