super(context);
executorService = Executors.newSingleThreadExecutor();
contentResolver = mContext.getContentResolver();
- executorService.execute(() -> {
- //监听各种状态
- //需要初始化一次,然后进行监听
- getWifiState();
- getGpsState();
- getBtState();
- //需要监听的
- getUnReadMsgState();
- getAlarmState();
- getWarningMsgReadState();
- getSilentState();
- checkIcTalkMsg();
- checkHasMissCall();
- getShakeState();
- getPlaneMode();
- checkAlarmState();
- observerContentChange();
- });
+ //监听各种状态
+ //需要初始化一次,然后进行监听
+ getWifiState();
+ getGpsState();
+ getBtState();
+ //需要监听的
+ getUnReadMsgState();
+ getWarningMsgReadState();
+ getSilentState();
+ checkIcTalkMsg();
+ checkHasMissCall();
+ getShakeState();
+ getPlaneMode();
+ checkAlarmState();
+ observerContentChange();
}
+
private void observerContentChange() {
//监听闹钟状态
contentResolver.registerContentObserver(Uri.parse(Constants.ALARMS), true,
}
});
//观察飞行模式
- contentResolver.registerContentObserver(Uri.parse(SETTINGS + ".is_air_mode_enable"), true,
+ contentResolver.registerContentObserver(Uri.parse(SETTINGS + ".is_air_mode_enable"),
+ true,
new ContentObserver(null) {
@Override
public void onChange(boolean selfChange) {
getPlaneMode();
}
});
- contentResolver.registerContentObserver(Uri.parse(SETTINGS + ".key_silent"), true,
+ contentResolver.registerContentObserver(Uri.parse(SETTINGS + ".key_silent"),
+ true,
new ContentObserver(null) {
@Override
public void onChange(boolean selfChange) {
getSilentState();
}
});
- contentResolver.registerContentObserver(Uri.parse(SETTINGS + ".key_shake_mode"), true,
+ contentResolver.registerContentObserver(Uri.parse(SETTINGS + ".key_shake_mode"),
+ true,
new ContentObserver(null) {
@Override
public void onChange(boolean selfChange) {
checkHasMissCall();
}
});
+ contentResolver.registerContentObserver(Uri.parse(SETTINGS + ".sms_unread"),
+ true,
+ new ContentObserver(null) {
+ @Override
+ public void onChange(boolean selfChange) {
+ getUnReadMsgState();
+ }
+ });
}
private void checkAlarmState() {
// warningReadState.postValue(true);
}
- private void getAlarmState() {
- // alarmState.postValue(true);
- }
-
private void getUnReadMsgState() {
- // msgUnReadState.postValue(true);
+ executorService.execute(() -> {
+ Cursor query = contentResolver.query(Uri.parse(SETTINGS), new String[]{"s_value"}, "s_key=?",
+ new String[]{"sms_unread"}, null);
+ if (query != null) {
+ if (query.moveToNext()) {
+ String value = query.getString(0);
+ if ("1".equals(value)) {
+ msgUnReadState.postValue(Boolean.TRUE);
+ } else {
+ msgUnReadState.postValue(Boolean.FALSE);
+ }
+ }
+ query.close();
+ }
+ });
}
private void getBtState() {
}
- private ContentObserver mGpsMonitor = new ContentObserver(null) {
+ private final ContentObserver mGpsMonitor = new ContentObserver(null) {
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);