我正在寻找一个用户何时从收件箱中删除短信的监听器。
any listener for delete sms in android 我的问题是重复但线程没有答案。
答案 0 :(得分:3)
不幸的是,没有广播意图。您可以通过加载SMS计数和ID来实现自己的检查程序,并将此结果与之前的一个时间进行比较。如果你太频繁地进行检查,它看起来不好并且可以耗尽电池,但我认为这只是解决问题的一种方法。
答案 1 :(得分:1)
我看到许多短信管理器应用程序在没有任何后台进程的情况下这样做,如果你删除其中一个短信,其他人也会立即删除短信,我知道我们可以使用ContentObserver
但我不知道认为这是正确的方式
在您的活动中:
public static void InitializeObserver(Context c) {
try {
ContentResolver contentResolver = c.getContentResolver();
Handler mSmsObserverHandler = new Handler(Looper.getMainLooper());
SmsObserver mSmsObserver = new SmsObserver(mSmsObserverHandler, c);
contentResolver.registerContentObserver(Uri.parse("content://sms/"), true, mSmsObserver);
} catch (Exception e) {
}
}
观察员班:
public class SmsObserver extends ContentObserver {
SharedPreferences trackMeData;
private Context c;
public SmsObserver(Handler handler, final Context c) {
super(handler);
trackMeData = c.getSharedPreferences("LockedSIM", 0);
this.c = c;
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
}}