Как получить доступ к хранилищу SMS на Android? - PullRequest
33 голосов
/ 26 января 2011

Здесь начинающий Android-разработчик.

Я пытаюсь создать приложение, которое будет читать SMS-сообщения, хранящиеся на устройстве, а затем предоставлять пользователю статистику об их привычках (например, о том, кому они часто общаются, общие слова и т. Д.).

Но, насколько мне известно, кажется, нет способа сделать это. Я осматривал форумы, и больше всего кто-то говорил о том, как получить доступ к папке «Входящие», где можно найти сообщения, которые пользователь не прочитал. Как тогда приложение по умолчанию и стороннее приложение (например, Handcent) могут отображать одинаковые тексты? У них нет собственной базы данных, потому что Handcent будет отображать все тексты при новой установке.

tl; dr: Как читать SMS-сообщения на устройствах Android, в частности сообщения, которые были прочитаны ранее.

Ответы [ 3 ]

26 голосов
/ 26 января 2011

Конкретный пример доступа к базе данных SMS / MMS приведен в gTalkSMS .

2 голосов
/ 02 марта 2013

Вам нужно позвонить в класс SmsManager. Вероятно, вам понадобится использовать константу STATUS_ON_ICC_READ и, возможно, поместить то, что вы там получите, в локальную базу данных своих приложений, чтобы вы могли отслеживать то, что вы уже прочитали, и новые материалы для анализа вашего приложения. НО имейте в виду, что вы должны объявить использование класса в своем манифесте, чтобы пользователи увидели, что у вас есть доступ к их SMS, вызванным в диалоге разрешений, который они получают при установке. Просмотр SMS-доступа необычен и может оттолкнуть некоторых пользователей. Удачи.

Вот ссылка, которая углубляется в Sms Manager

0 голосов
/ 21 июля 2012

Сделайте следующее, загрузите SQLLite Database Browser с здесь :

Найдите свою базу данных.файл в вашем телефоне.

Затем, как только вы установите программу, перейдите на: «Просмотр данных», вы увидите все SMS там! *

Вы можете экспортировать данные вфайл Excel или SQL.

...