我有以下代码:
public class MmsObserver extends ContentObserver {
private Context context;
public MmsObserver(Handler handler) {
super(handler);
this.context = service.getBaseContext();
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
Long largestDateCounted = Long.parseLong(UserPreferencesManager.getInstance().getValueFromPreferences(context, context.getString(R.string.preferences_current_counter), "0"));
String filter = "creator != ? and date > ?";
String[] args = new String[]{context.getPackageName(), Long.toString(largestDateCounted)};
Cursor c = context.getContentResolver().query(Constants.Mms, null, filter, args, null);
try {
} catch (Exception e) {
e.printStackTrace();
} finally {
c.close();
}
}
}我试图观察用户何时发送/接收到MMS消息。但是,我的观察者从来没有接到过电话。这上面有我遗漏的东西吗?我阅读了以下内容:
Android MMS Broadcast receiver
编辑
下面是我如何运行观察者:
mmsContent = new MmsObserver(new Handler());
getContentResolver().registerContentObserver(Constants.Mms, true, mmsContent);发布于 2016-08-22 05:11:33
在为MMS注册ContentObserver时,URI必须是content://mms-sms/,至少在较旧的Android版本上是这样。由于某些原因,content://mms/不会在ContentObserver上工作,只是可能会触发对草案消息的更改。
请注意,这也将导致观察者触发SMS表的更改。
https://stackoverflow.com/questions/39071378
复制相似问题