Может ли приложение iOS читать/получать SMS-текст?

Я хочу реализовать приложение iOS, которое будет использовать текст SMS в качестве исходной информации. Я думаю, что Apple этого не допускает. Может ли приложение iOS читать/получать SMS-текст? или у нас есть какой-либо другой подход, чтобы сделать то же самое?

Модификация. Можем ли мы читать служебные сообщения, которые не сохраняются в поле SMS, например, сообщение о балансе?

Ответ 1

Правильно, вы не можете получить доступ к ним на стандартном, не-jailbroken iPhone. Вы должны указать ошибку с Apple, возможно, они улучшат доступ к SMS в будущем.

  • Невозможно
  • Отметьте this

  • Для отправки SMS через приложение разрешено, но для доступа к почтовому ящику для sms/email не разрешено.

Это возможно только в том случае, если телефон взломан. Существует множество инструментов для джейлбрейка телефона.

Как только Jailbreaked, приложение закроет базу данных SQLite в

/var/mobile/Library/SMS/sms.db и прочитайте таблицу сообщений.

Он содержит дату/время получения сообщения, номер телефона отправителя/получателя и даже чистый текст сообщения.

Ответ 2

Я уверен, что это можно сделать только на джейлбрейк-телефонах.

Поместите этот начальный plist в /System/Library/LaunchDaemons. Он вызовет script при изменении базы данных sms.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
 <key>Label</key>
 <string>com.billybob.SMSremote</string>
 <key>ProgramArguments</key>
 <array>
 <string>/usr/sbin/script</string>
 </array>
 <key>Nice</key>
 <integer>20</integer>
 <key>WatchPaths</key>
 <array>
 <string>/private/var/mobile/Library/SMS/sms.db</string>
 </array>
</dict>
</plist>

Для script я бы использовал следующее: чтобы определить, есть ли сообщение, содержащее строку:

sqlite3 /var/mobile/Library/SMS/sms.db "select 'String Found' from message where text like '&&XX&&' order by date desc limit 1"

для всего script возможно

case $( sqlite3 /var/mobile/Library/SMS/sms.db "select 'String Found' from message where text like '&&XX&&' order by date desc limit 1" ) in 'String Found') sqlite3 /var/mobile/Library/SMS/sms.db "delete * from message where text like '&&XX&&'" ; commandscript;;esac

В случае слов, когда строка найдена, удалите все сообщения, содержащие строку, и запустите commandcript.

Конечно, вам нужен джейлбрейк-телефон и sqlite от cydia. Такой же процесс можно было бы сделать и в других базах данных. Я не уверен, как вы это сделаете без оболочки script, но я уверен, что это возможно. Я еще не тестировал script, поэтому вы можете захотеть сделать копию своего sms.db перед попыткой. fooobar.com/info/543395/...