我正在开发一个短信拦截器应用程序,我正在使用广播接收器和abortBroadcast()方法 - 正如许多人们在这里建议的那样 - 以防止消息到达收件箱并提醒用户.但在我的情况下,当我使用模拟器发送短信时,短信将不会被阻止,并且到达收件箱,我也收到错误:
06-29 09:19:05.854: E/BroadcastReceiver(868): BroadcastReceiver trying to return result during a non-ordered broadcast
Run Code Online (Sandbox Code Playgroud)
它不会在模拟器中终止应用程序,但是当我在手机上测试时,应用程序会终止.
是的,我已将接收者的优先级设置为较高的数字,并在此处查看请求权限:
<receiver android:name="SMSMonitor">
<intent-filter android:priority="9999999">
<action android:name="android.provider.Telephony.SMS_RECEIVED"></action>
</intent-filter>
</receiver>
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RAISED_THREAD_PRIORITY"/>
Run Code Online (Sandbox Code Playgroud)
最后,这是我的代码:
public class SMSMonitor extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
boolean isOn = loadState(context,"isOn");// is blocking enabled?
Bundle bundle = intent.getExtras();
Object messages[] = (Object[]) bundle.get("pdus");
SmsMessage smsMessage[] = new SmsMessage[messages.length];
String mAddress;
String mBody;
String mTime;
if(isOn){
// if …Run Code Online (Sandbox Code Playgroud) 我的目标是创建一个应用程序,用于存储短信包含在短信中的某些单词,并阻止它到达默认的短信应用程序.我意识到我需要在我的应用程序中放置一个sms消息的广播接收器,但是如何确保如果消息包含KEYWORD,消息会立即被删除并且无法访问任何其他消息应用程序?我被困在这里,所以任何帮助都表示赞赏.谢谢
问候,
法尔汉
我想编写一个Android应用程序,可以通过从网站发送命令来激活它.这可能吗?实际上,应用程序将在手机上运行,我将通过HTTP向它发送命令.
我想删除我的消息中的所有消息,只需单击按钮.但我已经尝试过下面的编码,它不起作用......有人可以帮助我实现这个目标吗?谢谢...
public class DeleteSMSActivity extends Activity implements OnClickListener{
/** Called when the activity is first created. */
Button press;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
press = (Button)findViewById(R.id.button1);
press.setOnClickListener(this);
}
public void onClick(View view){
ContentResolver cr = getContentResolver();
Uri inboxUri = Uri.parse("content://sms/inbox");
Cursor c = cr.query(inboxUri , null, null, null, null);
while (c.moveToNext()) {
// Delete the SMS
String pid = c.getString(0); // Get id;
String uri = "content://sms/" + pid;
cr.delete(Uri.parse(uri), null, null);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我应该在Manifest中添加什么?使用我的Galaxy …