簡體   English   中英

對 iPhone 上收到的短信做出反應

[英]react on incoming sms on an iPhone

在研究了以編程方式讀取傳入短信的可能性后,我意識到這在標准 iPhone 上是不可能的。

我正在研究一個應用程序,它應該具有以下操作順序:

  1. 用戶#1 使用特定關鍵字向用戶#2 發送短信,可能是 &&XX&&
  2. 用戶#2 收到短信並根據關鍵字觸發某些內容

鑒於無法讓手機自動對基於短信的按鍵進行操作,因此可以在收到短信並將短信作為輸入時手動觸發某些操作。

我的問題是,如果有人知道什么是可能的或/以及以最簡單的方式使用短信作為輸入的最佳方法是什么。

不,在未越獄的手機上,您無法獲取任何有關 SMS 消息或電話的數據。 它們與您的應用程序完全隔離。

我很確定它只能在越獄手機上完成。

將此已啟動的 plist 放在 /System/Library/LaunchDaemons 中。 每當 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>

對於腳本,我將使用以下內容來確定是否有包含字符串的消息:

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 腳本的情況下你會如何 go 這樣做,但我確信這是可能的。 我還沒有測試過這個腳本,所以你可能想在嘗試之前復制你的 sms.db。

是的,但是通過用戶交互手動進行,而不是自動進行。 讓您的應用注冊一個 URL 處理程序。 然后,如果用戶在 SMS 消息中點擊該表單的 URL,您的應用程序將被觸發。

如果沒有 api 來讀取 iphone 中的傳入短信,那么安裝時 whatsapp 激活碼是如何工作的。 僅供參考,在 iphone 中安裝 whatsapp 時,激活碼會發送到您輸入的手機號碼,然后 whatsapp 會自動使用該號碼進行注冊。 所以他們以某種方式閱讀傳入的短信並將其用於注冊。 如果是這樣,它是如何完成的? 謝謝你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM