Intereting Posts
Ошибка: выполнение выполнено для задачи ': app: dexDebug'. com.android.ide.common.process.ProcessException Android MediaPlayer не воспроизводит mp3-файл Программное включение / отключение поворотов экрана в Android Параметры внешней камеры Android – наложение поверх видеопотока, отсутствие промежуточного сервера / маршрутизатора Лучшие практики: макеты на Android (Programmatic vs XML) Android: что-то лучше, чем андроид: ellipsize = "end", чтобы добавить «…» к укороченным длинным строкам? Вызовите WebView # getDrawingCache () асинхронно без замораживания потока пользовательского интерфейса ShouldOverrideUrlLoading в WebView для Android не работает Как использовать изображение (сохраненное изображение устройства) с текстом на TextView Android? ViewPager показывает следующий и перед просмотром элемента на экране Выпущена неизвестная ссылка на битмап Рекомендуемый музыкальный формат для Android – mp3, ogg или другой? Android Visualizer FFT / waveform влияет на объем устройства? Необходимый атрибут XML «adSize» отсутствовал Отладка / загрузка bluestacks из eclipse

Как получить черновик SMS в Android 6 Marshmallow

Мои вопросы относятся только к Android 6 (начиная с версии 23 SDK). Мне нужно получить все SMS, даже черновики для дальнейшей обработки. Здесь нет ничего особенного, использовали следующий код:

context.getContentResolver().query(Uri.parse("content://sms/"), new String[] {...}, null, null, null) 

И эта работа идеально подходит для Android 5, а это значит, что я получаю все SMS-сообщения, включая черновик. Но на всех устройствах с Android 6 я получаю только отправленные и полученные сообщения и НЕТ ПРОЕКТА. Попробуйте сделать мое приложение по умолчанию SMS, прежде чем пытаться запросить SMS – но не повезло, на Android 6 я до сих пор не могу получить черновики сообщений. В чем проблема? Я уже нашел некоторые связанные сообщения, отсутствующие в сообщениях поставщика контента на Android Marshmallow. Но это не решает мою проблему вообще.

Solutions Collecting From Web of "Как получить черновик SMS в Android 6 Marshmallow"

Для Marshmallow вам нужно добавить разрешения времени выполнения для чтения сообщений.

Проверить разрешение, подобное этому

 int permissionCheck = ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.READ_SMS); 

Если разрешение было отклонено, так спросите во время выполнения

 ActivityCompat.requestPermissions(this, new String[]{{Manifest.permission.READ_SMS}, PERMISSIONS_REQUEST_READMESSAGE); 

Для доступа к проекту это URI для поставщика контента.

Поставщик контента для проекта

 content://sms/draft 

Примечание: не забудьте добавить разрешения

 <uses-permission android:name="android.permission.READ_SMS"></uses-permission> 

Я верю, что ваш поиск найден в этом ответе . Он предоставляет список URI для доступа к различным SMS-боксам. В частности, для проектов SMS-сообщений

Содержание: // смс / проект

Запрос на содержимое URI : // sms / draft будет возвращать только черновики сообщений, которые хранятся в поставщике SMS.

По умолчанию приложение приложений для обмена сообщениями android хранит черновики сообщений в приложении и не добавляет черновики в поставщика SMS.

Только черновики сообщений, которые являются частью провайдера SMS (могут быть добавлены с помощью скрытого API-интерфейса SMSManager addTextMessageDraft), будут возвращены в качестве результатов при запросе содержимого URI : // sms / draft выполняется.