2011-06-21 10 views
0

可能性の重複:アンドロイドでアプリからSMSを送信する
I am afraid: SMS send from within an app seem impossible to detect?アプリケーションから送信されたSMSを追跡

は本当に簡単です:

SmsManager sms = SmsManager.getDefault(); 
sms.sendTextMessage(phoneNumber, null, position, pi, null); 

しかし、それはように見えますこれらのSMSはすべて「不可視」であり、ユーザーはSMSが送信されたことを決して知らないでしょう!

- >すべてのSMSアプリケーション(Go SMS、Handcent、stock appなど)では、これらのSMSは表示されません。

- >送信されたこれらのSMSは、インテントを送信していないようです。

だから私の質問は単純です:これらのSMSをすべて追跡し、アプリケーションが悪意のある場合はどうすれば見つけることができますか?

私の請求書を確認するために月末まで待たず、遅すぎるでしょう!

+1

Stack Overflowに関する質問をもっと見やすくする方法は、[バウンティを投稿する](http://stackoverflow.com/faq#bounty)です。ありがとう。 – sarnold

答えて

0

、答えは "NO、何の解決策は存在しない" ように見えます。

これはセキュリティ上の大きな問題です。

0

このようなメッセージを送信する代わりに、デフォルトのSMSアプリケーションで処理されるインテントを起動することができます。それはあなたのテキストが表示されるでしょう。

send SMS Intent in Android

EDIT

このSOポストを見てみましょう私の知る限り

をAndroidのSMSを送信するときに、何の意図放送はありません。

+0

私はそれがOPが求めているとは思わない。 IMOは、他のアプリケーションから送信されたメッセージの数を把握する方法を質問しています。 –

+0

回答が編集されました。私を修正しても構いませんが、SMSを送信したときにAndroidがシステムの意図をブロードキャストしているとは思いません。 – hwrdprkns

+0

私はあなたが正しいと思います...システムコードを変更するのに手間がかかりません、私はこれを行う方法がわかりません –

0

あなた自身のBroadcastReceiverを作成し、その文字列をPendingIntentで渡す必要があります。だから、...

private static final String SENT_SMS  = "com.your.stuff.SMS_SENT"; 
    private static final String DELIVERED_SMS = "com.your.stuff.SMS_DELIVERED"; 
    private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED"; 

メッセージがActivity.RESULT_OKで出て行ったときしかし、あなたを教えてくれないシステムをこのような何かを見ることができます。 SmsManager.RESULT_ERROR_GENERIC_FAILUREなどのようにOKでない場合は、他のメッセージがあります。ブロードキャストレシーバーで設定したことを確認できます。

this.sentReceiver = new BroadcastReceiver() { 

    @Override 
public void onReceive(final Context pContext, final Intent pIntent) { 
// Get the result code 
switch (this.getResultCode()) { 
    case Activity.RESULT_OK: 
     // Do something that pertains to the SMS going out ok like adding one to your outgoing count 
     break; 
    case SmsManager.RESULT_ERROR_GENERIC_FAILURE: 
     // do something 
     break; 
    case SmsManager.RESULT_ERROR_NO_SERVICE: 
     // do something 
     break; 

    ... 

    default: 
     break; 
} 

}他の解決策がなければ

http://developer.android.com/reference/android/telephony/SmsManager.html

+0

ありがとう!これはすばらしい最初のステップです。だから私が理解しているところでは、私のアプリ内からSMSのセンデンドを検出することはできますが、他のアプリからは検出できません。 –

+0

AFAIKは正しいです...私はそれをテストしていませんが、私はすべての放送がシステムによってピックアップされていると思うので、理論的には、受信機を設定し、任意の意図を受け取ることができます。しかし、情報を制御する方法は許可を介してです。 – rf43

関連する問題