Проблема с текстовыми сообщениями на определенном устройстве

Я получаю отправленное и полученное текстовое сообщение с устройства.

Он отлично работает с большинством устройств, но теперь на некоторых устройствах, таких как 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));
}

Примечание: у меня нет устройства под рукой, его запрос от пользователя. и все используют вышеупомянутые устройства.

Любая помощь оценит.

0 ответов

Другие вопросы по тегам