2012-10-15 120 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会以另一种方式禁止它。 –