iOS应用程序可以读取/访问SMS文本吗?

iOS应用程序可以读取/访问SMS文本吗?

问题描述:

我想实现一个将使用SMS文本作为原始信息的iOS应用程序。我认为苹果不允许这样做。 iOS应用程序可以读取/访问SMS文本吗?还是我们有其他方法来做同样的事情?iOS应用程序可以读取/访问SMS文本吗?

修改:我们可以读取没有保存在SMS框中的服务信息吗?

+2

的可能重复[iPhone应用程序阅读短信(http://stackoverflow.com/questions/3656723/iphone-app-reading-sms) –

+1

该应用程序只能发送短信,无法读取/接收短信在iOS中。 –

正确,您无法在标准的非越狱iPhone上访问这些内容。你应该向苹果提交一个bug,或许他们将来会改进短信访问。

  1. 不可能
  2. 检查this

  3. 对于SMS通过允许应用程序发送,但访问不允许短信/电子邮件收件箱。

这是唯一可能的手机是越狱。有很多工具可以越狱你的手机。

一旦Jailbreaked,应用CAL在

/var/mobile/Library/SMS/sms.db 打开SQLite数据库和阅读信息表。

它包含收到邮件的日期/时间,发件人/收件人的电话号码,甚至邮件的明文。

+4

随着iOS 8.0的一些非沙盒,这仍然是这种情况? – Randyaa

+1

现在有什么方法可以阅读短信吗? –

+0

我见过一些截取短信(以只读方式)作为其注册流程一部分的应用程序。但是没有发现如何做到这一点。 – Andre

我敢肯定,它只能在越狱手机上完成。

将此启动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