Intereting Posts

Как получить черновик 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 выполняется.