2017-08-14 8 views
1

傍受されたSMSを送信しているアプリを検出する方法はありますか?Android、どのアプリがSMSを送信しているのかを検出しますか?

私のコードでは、送信SMSと受信SMSの両方を傍受し、本文、電話番号などを読み取ることができますが、SMSを送信しているアプリケーション/パッケージを検出する方法があるかどうかはわかりません。私は検索しましたが運がありませんでした。 ありがとうございます。 私は、短いメッセージを傍受するには、以下のライブラリを使用しています:私はデフォルトのメッセージングアプリですアプリの話ではない

Sms Radar on GitHub

注意を。 WhatsAppのような他のアプリは、ユーザーを認証するためにSMSを送信することがあります。これらのタイプのSMSは送信ボックス/送信メッセージ内には表示されませんが、送信/受信の時点でそれらを検出できます。

私はちょうどどのアプリ(パッケージ名)が現在SMSを送信しているのかを正確に知りたいだけです。

答えて

0

回避策が見つかりました。アプリがショートメッセージを送信している間、フォアグラウンドプロセスです。だから、onSMSSent()が呼び出され、SMSを送信しているアプリケーションがリストの一番上に見つかると、フォアグラウンドプロセスのリストを取得しました。

これは固い解決策ではないかもしれないが、@ Ch4t4rが言ったように、SMS送信アプリを直接手に入れるという解決策はないようだ。

+0

フォアグラウンドアプリケーションにアクセスする前に、使用者データに明示的にアクセス許可を与える必要があることに注意してください。 'startActivity(新しいインテント(Settings.ACTION_USAGE_ACCESS_SETTINGS));' これは新しいAndroidバージョンでのみ実行する必要があります – Ch4t4r

1

AFAIKどのアプリがSMSを送信しているのかを検出することはできません。それは単にコンテンツストレージに保存されていません。

SMSが送信されたときにSEND_SMS権限(インターネット権限を持つ可能性があります)を持つすべての現在実行中のアプリをリストアップすることができます。

別の(テストされていない)方法は、Thread.currentThread().getStackTrace()を使用してonSmsSent()のスタックを読み込み、SMSを送信できるアプリケーションに到達するまで返された配列を反復することです。しかし、Androidがコンテンツストレージに加えられた変更をプロキシする可能性が最も高いので、これはうまくいきません。

関連する問題