Android MMS观察员

时间:2016-08-22 04:22:34

标签: android mms

我有以下代码:

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();
        }
    }
}

我正在尝试观察用户何时发送/接收彩信。但是,我的观察者永远不会被召唤。我有什么遗漏吗?我已阅读以下内容:

Android MMS Monitoring

Android MMS Broadcast receiver

修改

这是我如何运行观察者:

mmsContent = new MmsObserver(new Handler());
getContentResolver().registerContentObserver(Constants.Mms, true, mmsContent);

1 个答案:

答案 0 :(得分:1)

为MMS注册ContentObserver时,URI必须为content://mms-sms/,至少在较旧的Android版本上。由于某些原因,content://mms/不适用于ContentObserver,除了可能触发对草稿邮件的更改。

请注意,这也会导致Observer触发对SMS表的更改。