iOS应用程序可以读取/访问SMS文本吗?
问题描述:
我想实现一个将使用SMS文本作为原始信息的iOS应用程序。我认为苹果不允许这样做。 iOS应用程序可以读取/访问SMS文本吗?还是我们有其他方法来做同样的事情?iOS应用程序可以读取/访问SMS文本吗?
修改:我们可以读取没有保存在SMS框中的服务信息吗?
答
正确,您无法在标准的非越狱iPhone上访问这些内容。你应该向苹果提交一个bug,或许他们将来会改进短信访问。
- 不可能
检查this
对于SMS通过允许应用程序发送,但访问不允许短信/电子邮件收件箱。
这是唯一可能的手机是越狱。有很多工具可以越狱你的手机。
一旦Jailbreaked,应用CAL在
/var/mobile/Library/SMS/sms.db 打开SQLite数据库和阅读信息表。
它包含收到邮件的日期/时间,发件人/收件人的电话号码,甚至邮件的明文。
答
我敢肯定,它只能在越狱手机上完成。
将此启动plist放入/System/Library/LaunchDaemons.
只要短信数据库发生更改,它就会触发脚本。
<?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>
对于剧本我会使用类似以下内容,以确定是否有包含字符串消息:
sqlite3 /var/mobile/Library/SMS/sms.db "select 'String Found' from message where text like '&&XX&&' order by date desc limit 1"
整个脚本也许
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
为了当找到字符串时,删除所有包含字符串的消息并执行命令。
当然,你需要从cydia越狱手机和sqlite。同样的过程也可以在其他数据库上完成。我不知道如何在没有shell脚本的情况下执行此操作,但我相信这是可能的。我还没有测试脚本,所以你可能想在尝试之前制作一份sms.db的副本。 https://stackoverflow.com/a/8120599/4731224
的可能重复[iPhone应用程序阅读短信(http://stackoverflow.com/questions/3656723/iphone-app-reading-sms) –
该应用程序只能发送短信,无法读取/接收短信在iOS中。 –