Android彩信观察者
Android MMS observer
我有以下代码:
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();
}
}
}
我正在尝试观察用户 sends/receives 收到彩信的时间。但是,我的观察员永远不会被调用。有什么我想念的吗?我已阅读以下内容:
Android MMS Monitoring
Android MMS Broadcast receiver
编辑
我是这样的 运行 观察者:
mmsContent = new MmsObserver(new Handler());
getContentResolver().registerContentObserver(Constants.Mms, true, mmsContent);
为 MMS 注册 ContentObserver
时,URI 需要是 content://mms-sms/
,至少在较旧的 Android 版本上是这样。出于某种原因,content://mms/
不适用于 ContentObserver
,除了可能触发对草稿消息的更改。
请注意,这也会导致 Observer 触发 SMS table 的更改。
我有以下代码:
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();
}
}
}
我正在尝试观察用户 sends/receives 收到彩信的时间。但是,我的观察员永远不会被调用。有什么我想念的吗?我已阅读以下内容:
Android MMS Monitoring
Android MMS Broadcast receiver
编辑
我是这样的 运行 观察者:
mmsContent = new MmsObserver(new Handler());
getContentResolver().registerContentObserver(Constants.Mms, true, mmsContent);
为 MMS 注册 ContentObserver
时,URI 需要是 content://mms-sms/
,至少在较旧的 Android 版本上是这样。出于某种原因,content://mms/
不适用于 ContentObserver
,除了可能触发对草稿消息的更改。
请注意,这也会导致 Observer 触发 SMS table 的更改。