2012-05-03 7 views
1

彼女は私が達成しようとしているものです:BroadcastReceiverにインテントフィルタを使用していますか?

  1. ユーザーが(つぶやきやリンクを共有するように)任意のアプリからいくつかのテキストを共有しようとすると、私のアプリは、共有リストに表示されます。
  2. 彼が私のアプリを選択した場合、トーストを表示するような簡単なコードが実行されます。それだけです。インタフェースやUIは必要ありません。

ここでは、私はそれをやった方法です:

のAndroidManifest.xml

<receiver 
android:name=".MyBroadcastReceiver" > 
    <intent-filter 
     android:label="select my app"> 
     <action android:name="android.intent.action.SEND" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <data android:mimeType="text/plain" /> 
    </intent-filter>     
</receiver> 

MyBroadcastReceiver.java

public void onReceive(Context arg0, Intent arg1) { 
    // TODO Auto-generated method stub 
    //Some simple code 
    Toast.makeText(arg0, "My Receiver is cool", Toast.LENGTH_LONG).show(); 
} 

これは、私のアプリのdoesnを動作しませんでした共有リストには表示されません。

なぜ私はBroadcatReceiversで作業し、Activitiesで作業しないのですか?私は、任意のUIを望んでいないと私は考えてので、我々は(私のPLZを修正)受信機を持っている

は、私は右のそれをやっている理由は何ですか?

答えて

8

これはうまくいかず、私のアプリは共有リストに表示されません。

ACTION_SENDはアクティビティで使用されます。 BroadcastReceiverを使用しようとしています。 BroadcastReceiverはアクティビティではないため、これは機能しません。

アム私は右のそれをやって?

彼は私のアプリを選択した場合は、いくつかの簡単なコードは、それはそれだ(トーストを示すように)実行されます。インタフェースやUIは必要ありません。

あなたはまだ活動を必要としています。ただし、アクティビティTheme.NoDisplayを指定してsetContentView()に電話をかけると、そのアクティビティのUIはありません。通常、finish()onCreate()から呼び出すだけです(この場合は、Toastと表示します)。例えば

this sample applicationは活性(FauxSenderが)あなたが欲しいものを正確に行うように設定する例を示しますToastACTION_SENDに応じます。 ACTION_SENDを発行して結果を確認できる別のアクティビティがあります。

+0

問題が解決しました。ありがとう! – iTurki

関連する問題