1

彼女は私が達成しようとしているものです:

  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();
}

これは機能しませんでした。アプリが共有リストに表示されません。

BroadcatReceiversと一緒に仕事をするのではなく、なぜ仕事をするのActivitiesですか? 私はUIが欲しくないので、それが受信機を持っている理由だと思います(私のplzを修正してください)

私はそれを正しくやっていますか?

4

1 に答える 1

8

これは機能しませんでした。アプリが共有リストに表示されません。

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

私はそれを正しくやっていますか?

いいえ。

彼が私のアプリを選択すると、いくつかの簡単なコードが実行されます (トーストを表示するなど)。インターフェイスや UI は必要ありません。

まだまだ活動が必要です。ただし、 activityを指定Theme.NoDisplayして を呼び出さない場合setContentView()、アクティビティの UI はありません。通常、実行したいことを実行した後、finish()fromを呼び出すだけです (この場合は a を表示します)。onCreate()Toast

たとえば、このサンプル アプリケーションFauxSenderは、必要なことを正確に実行するように設定されたアクティビティ ( ) を示してACTION_SENDいますToast。を発行する別のアクティビティがあるACTION_SENDため、結果を確認できます。

于 2012-05-03T22:29:21.083 に答える