Проблема с текстовыми сообщениями на определенном устройстве
Я получаю отправленное и полученное текстовое сообщение с устройства.
Он отлично работает с большинством устройств, но теперь на некоторых устройствах, таких как Samsung S8, Samsung S7, LG 20 plus, Samsung note 4 и аналогичных устройствах, сообщения Sent Text не отправляются.
Еще одна вещь заключается в том, что иногда отправленные SMS синхронизируются, но это будет 1% от текстового сообщения, как если бы я отправил 20 текстовых сообщений, тогда я получу только 1 или 2 SMS.
Я использую ContentObserver для получения текстового сообщения.
Ниже приведен код
@Override
public void onChange(boolean selfChange) {
Log.i(TAG, "Changed");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
&& moContext
.checkCallingOrSelfPermission(Manifest.permission.READ_SMS) != PackageManager.PERMISSION_GRANTED)
return;
String[] laColumns = new String[]{"_id", "type", "address", "body", "date", "person"};
Uri loUriAllMessages = Uri.parse("content://sms/");
Cursor loCursor = moContext.getContentResolver().query(
loUriAllMessages, laColumns, null, null, "_id DESC");
//Adding SMS in the DB.
super.onChange(selfChange);
}
Вышеуказанный ContentObserver регистрируется в классе уровня приложения, как показано ниже
@Override
public void onCreate() {
super.onCreate();
Log.i(TAG, "Application started.");
moInstance = this;
registerMessageObserver();
}
// Register message observer to observe message state
private void registerMessageObserver() {
String url = "content://sms/";
Uri uri = Uri.parse(url);
this.getApplicationContext()
.getContentResolver()
.registerContentObserver(uri, true,
new MessageObserver(new Handler(), this));
}
Примечание: у меня нет устройства под рукой, его запрос от пользователя. и все используют вышеупомянутые устройства.
Любая помощь оценит.