我正在删除收件箱中的短信,但我想知道:如何在到达收件箱之前将其删除?我们可以在Android中收到短信吗?
回答
是的。
尽管对此问题有一些负面反应,但短信拦截仍有合法用途。例如:电话号码验证自动化,通过SMS提供的服务(尽管通常这应该通过数据SMS完成),或者用于通过处理特殊格式的消息来改善用户体验以便将其显示在漂亮的Android中的应用程序特定的用户界面。
从Android 1.6开始,传入的SMS消息广播(android.provider.Telephony.SMS_RECEIVED
)以“ordered broadcast”—的形式发送,这意味着您可以告诉系统哪些组件应该首先接收广播。
如果您在SMS侦听<intent-filter>
上定义了android:priority
属性,您将在本机SMS应用程序之前收到通知。
此时,您可以通过cancel进行广播,防止它传播到其他应用程序。
更新(2013年10月):当Android 4.4的到来,它会进行更改SMS的API可能影响应用程序的影响SMS传送能力。
查看这个Android开发者博客文章多一些信息:
http://android-developers.blogspot.com/2013/10/getting-your-sms-apps-ready-for-kitkat.html
圣神。这是真的!我一直认为这将是相反的方式!为了证明,请看[这里](https://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=telephony/java/com/android/internal/telephony/SMSDispatcher的.java; HB = HEAD#L420)。哇。希望我可以给你多一个upvote;) – Hamy 2010-08-01 16:59:32
它可以在android 2.2上工作吗? – kakopappa 2011-02-07 06:08:12
@ kakopappa:是的,正如在答案中提到的那样,它从Android 1.6+开始。 – 2011-02-07 14:46:20
下(“机器人:优先”和abortBroadcast())解决方案,只要可以作为Android的消息默认应用程序(我的意思是普通的Android消息应用)。如果用户安装了“GoSMSPro”或“HandcentSMS”,这些应用程序仍然在收件箱中显示消息,我相信这是由于“android:priority”引起的。如果手机上安装了第三方消息应用程序,我不认为有更好的方法可以解决上述问题。
好点。但这应该是一个评论,而不是一个答案。可以移动它吗? ---如果你提出一个非常高的价值呢?至于android:priority =“9999”?例如?你尝试过吗? – 2011-10-08 00:14:28
@FelipeMicaroniLalli居然GO短信PRO等,使用2147483647他们的优先 – rf43 2011-11-03 18:16:04
@DDoSAttack 2147483647是最大的? – 2011-11-04 04:48:11
如果你有这样一个场景,你想删除或忽略与此相关的联系号码信息“+ 44xxxxx”等,然后使用这个代码在短信广播接收机
if(sender.equalsIgnoreCase("+44xxxxxx")
this.abortBroadCast();
您也可以将其设置为高优先级。
abortBroadCast();不在Kitkat运行... – Noman 2014-09-29 12:15:55
abortBroadcast(); – eliasRuizHz 2015-10-22 06:06:50
步骤1:创建自定义广播接收器来接收短信。写逻辑中止broadst这样就不会提供给您的收件箱
public class SMSReceiver extends BroadcastReceiver
{
public void onReceive(Context context, Intent intent)
{
if(conditionMatches){
abortBroadcast();
}
}
}
步骤2注册广播接收器在AndoridManifest消息,并把机器人:优先级值大量
<receiver android:name=".SMSReceiver" >
<intent-filter android:priority="1000">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
那它
如何上面的代码工作
由于接收广播的短信是有序广播,高优先级的接收机将首先收到,以便您的应用首先收到,并在收到您之后中止广播。所以没有其他应用程序可以接收它。因此短信将不存在于收件箱
我们可以有一个广播接收器,当用户按下消息收件箱,以便我可以开发一个锁屏。 – 2014-02-15 08:12:19
/**
* Check priority
* @param activity
*/
public static void receiverPriority(Activity activity){
Intent smsRecvIntent = new Intent("android.provider.Telephony.SMS_RECEIVED");
List<ResolveInfo> infos = activity.getPackageManager().queryBroadcastReceivers(smsRecvIntent, 0);
for (ResolveInfo info : infos) {
System.out.println("Receiver: " + info.activityInfo.name + ", priority=" + info.priority);
}
}
检查优先级并设置比其他接收者更高的优先级(在您的清单中)。
- 1. 可以发送短信与Android中收到的短信有关系吗?
- 2. 我可以发送“短信收到意向”吗?
- 3. 在Android中读取收到的短信
- 4. Android:多次收到短信
- 5. 我可以在Android上隐藏短信吗?
- 6. 您可以直接在cURL中发送短信/短信吗?
- 7. Codename可以读短信吗?
- 8. 我们可以使用SmsManager将短信发送给其他非Android设备吗?
- 9. 我们可以缩短我写在js中的jQuery代码吗?
- 10. 接收短信Android
- 11. C++:我们可以收集类型吗?
- 12. 在android上收听短信
- 13. 我可以写一个android服务来发送短信吗?
- 14. 我可以使用Android发送匿名短信吗?
- 15. 可以通过模拟器在android中发送短信吗?
- 16. 我可以从传入的短信/彩信中启动Android应用吗?
- 17. 发短消息在android短信中收到的活动
- 18. 如何从我们的android应用程序接收短信?
- 19. android短信发送到收到号码
- 20. 我们可以从iPhone sdk的iPhone内存中检索短信吗?
- 21. 我们可以在黑莓手机上获得短信发送报告吗?
- 22. 我们可以在iOS上检测到非iBeacon信标吗?
- 23. 我可以在XPath中写短路吗?
- 24. 短信广播接收器在Android中的多个短信
- 25. 在android中发送独特的短信和接收looong短信
- 26. Zendesk和Smooch整合:我可以在Zendesk中收到短信,但无法回复短信
- 27. 在Android到达收件箱之前,在Android中删除短信?
- 28. 如何在Android中收听新短信
- 29. 如何在android中接收短信?
- 30. 在android中无法接收短信
j2ee真的是一个匹配的标签吗? – jitter 2009-11-16 11:42:04
为什么java不正确你不用java编程Android? – jitter 2009-11-16 11:51:05
这邪恶的恶魔。你不应该这样做。 – MattC 2009-11-17 03:14:29