これは繰り返しの質問ですが、このトピックに関する完全なドキュメントを見つけることができませんでした。
kannel または他のデバイスでデフォルトのパラメーターを使用して送信されたときに、SMS を傍受できるアプリケーションが既に動作しています。私のマニフェストは次のようになります:
<receiver
android:name=".sms.SMSListener"
android:enabled="true" >
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
と の両方で機能android.provider.Telephony.SMS_RECEIVED
しandroid.intent.action.DATA_SMS_RECEIVED
ます。
しかし、私のアプリケーションの目的上、SMS はユーザーの受信トレイに表示されてはなりません。そのために、kannel は SMS を特定のポートに送信しました。すでに Blackberry で動作しているので、問題の送信部分は既に動作していると思います。また、他の方法でこの目標を達成できる可能性があります。他の同様のプロジェクトとの一貫性を保つために、このソリューションを実装する必要があります。そのもう 1 つの理由は、BroadcastReceiver
受信した SMS ごとに my が起動されないようにするためです (したがって、受信した SMS をそれぞれ解析する必要があります)。
ただし、現在のマニフェストでは、特定のポートに送信された SMS を受信しません (受信者はまったく起動しません)。いくつかの調査の後、特定のポートにテキスト SMS を受信する方法、データ SMS メッセージを送受信する方法などのトピックを見つけました。誰かが追加すると言う:
<data android:scheme="sms" />
<data android:port="1234" />
動作するのに十分です (残念ながら、私には動作しません)。ただし、ドキュメント ( http://developer.android.com/guide/topics/manifest/data-element.html ) によると、を考慮に入れるためにandroid:scheme
を指定する必要があります。ドキュメントを理解している限り、指定するだけでインテントフィルターは機能するはずです。ただし、を指定するとすぐに、特定のポートで SMS を送信するかどうかに関係なく、動作しなくなります。android:host
android:port
android:scheme
android:scheme
BroadcastReceiver
<receiver
android:name=".sms.SMSListener"
android:enabled="true" >
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
<data android:scheme="sms" />
</intent-filter>
</receiver>
だから私の質問は次のとおりです。
- どの値
android:scheme
を取ることができるかについての文書はどこかにありますか? - どの値を使用すればよい
android:host
ですか? - SMSをすべてのポートでリッスンするアプリがどこかにあるので、テストSMSが正しく送信されていることを確認できます(この部分を再確認するためだけに)?