可能重复:
I am afraid: SMS send from within an app seem impossible to detect?
从Android中的应用发送短信非常简单:
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, position, pi, null);
但似乎所有这些短信都“隐身”,用户永远不会知道短信已经发送过!
- >所有短信应用程序(Go SMS,Handcent,stock app等)都没有显示这些短信。
- >这些发送短信似乎没有激发意图。
所以,我的问题很简单:如何跟踪所有这些短信并查找应用程序是否是恶意的?
我不想等到月底检查我的账单,为时已晚!
答案 0 :(得分:0)
您可以触发默认SMS应用程序处理的意图,而不是像这样发送消息。这将导致您的文字显示。
看看这篇SO帖子:
修改强>:
AFAIK,Android发送短信时没有意图广播。
答案 1 :(得分: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等等。您可以在BroadcastReceiver中检查您设置的内容......
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
答案 2 :(得分:0)
没有任何其他解决方案,答案似乎是“不,没有解决方案”。
在我看来,这是一个很大的安全问题。