Chr*_*Orr 186
是.
尽管对这个问题有一些负面的反应,但短信拦截也有合法用途.例如:自动化电话号码验证,通过短信提供的服务(虽然通常应该通过数据短信进行),或者用于通过处理特殊格式的消息来改善用户体验的应用程序,以便在一个不错的Android中显示它们特定的用户界面.
从Android 1.6开始,传入的SMS消息广播(android.provider.Telephony.SMS_RECEIVED)作为" 有序广播 " 传送- 这意味着您可以告诉系统哪些组件应该首先接收广播.
如果您android:priority在收听短信时定义属性<intent-filter>,则会在本机SMS应用程序之前收到通知.
此时,您可以取消广播,防止广播传播到其他应用.
更新(2013年10月):当Android 4.4到达时,它将更改SMS API,这可能会影响应用程序影响SMS传递的能力.
查看此Android开发人员博客文章以获取更多信息:http:
//android-developers.blogspot.com/2013/10/getting-your-sms-apps-ready-for-kitkat.html
Sun*_*hoo 11
步骤1:创建自定义广播接收器以接收短信.编写逻辑以中止最广泛的内容,以便邮件无法在您的收件箱中使用
public class SMSReceiver extends BroadcastReceiver
{
public void onReceive(Context context, Intent intent)
{
if(conditionMatches){
abortBroadcast();
}
}
}
Run Code Online (Sandbox Code Playgroud)
步骤2在AndoridManifest中注册广播接收器并将android:priority值设置为大数
<receiver android:name=".SMSReceiver" >
<intent-filter android:priority="1000">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
而已
上面的代码是如何工作的
由于接收广播的短信是有序广播,优先级高的接收者将首先接收,因此您的应用程序首先接收,并在收到您正在中止广播.所以没有其他应用程序可以接收它.因此短信不会存在于收件箱中
小智 9
以下("android:priority"和abortBroadcast())解决方案的工作原理只要Android Messaging应用程序为默认值(我的意思是股票Android Messaging应用程序).如果用户安装"GoSMSPro"或"HandcentSMS",这些应用程序仍会在收件箱中显示消息,我相信这是由于"android:priority".如果手机上安装了第三方消息传递应用程序,我认为没有更好的方法来解决上述问题.
| 归档时间: |
|
| 查看次数: |
51260 次 |
| 最近记录: |