Weiß jemand, ob und wie es möglich ist, mit dem offiziellen SDK / Cocoa Touch eine SMS vom "iPhone" zu versenden?
Wenn Sie eine SMS innerhalb eines Programms auf dem iPhone senden können, können Sie auch Spiele schreiben, die im Hintergrund Spam versenden. Ich bin mir sicher, dass du wirklich Spams von deinen Freunden haben willst, "Probiere dieses neue Spiel aus! Es roxxers meine boxxers, und Ihre wird auch sein! roxxersboxxers.com!!!! Wenn du dich jetzt anmeldest, bekommst du 3.200 RB-Punkte!!!
Apple hat Beschränkungen für automatisierte (oder auch nur teilweise automatisierte) SMS und Wählvorgänge. (Stellen Sie sich vor, das Spiel würde stattdessen zu einer bestimmten Tageszeit den Notruf wählen)
Am besten ist es, einen Zwischenserver im Internet einzurichten, der einen Online-SMS-Versanddienst nutzt, und die SMS über diesen Weg zu senden, wenn Sie eine vollständige Automatisierung benötigen. (d.h. Ihr Programm auf dem iPhone sendet ein UDP-Paket an Ihren Server, der die echte SMS sendet)
iOS 4 bietet jetzt jedoch einen "ViewController", den Sie in Ihre Anwendung importieren können. Sie füllen die SMS-Felder aus und der Benutzer kann dann den SMS-Versand innerhalb des Controllers initiieren. Im Gegensatz zur Verwendung des URL-Formats "SMS:..." kann Ihre Anwendung geöffnet bleiben, und Sie können sowohl die Felder an als auch Body ausfüllen. Sie können sogar mehrere Empfänger angeben.
Dadurch wird verhindert, dass Anwendungen automatisierte SMS versenden, ohne dass der Benutzer dies ausdrücklich bemerkt. Sie können immer noch keine vollautomatischen SMS vom iPhone selbst versenden, dazu ist eine gewisse Benutzerinteraktion erforderlich. Aber so können Sie wenigstens alles ausfüllen und vermeiden, dass das Programm geschlossen wird.
Die Klasse MFMessageComposeViewController ist gut dokumentiert, und Tutorials zeigen, wie einfach sie zu implementieren ist.
iOS 5 beinhaltet Messaging für iPod touch und iPad Geräte. Obwohl ich dies noch nicht selbst getestet habe, kann es sein, dass alle iOS Geräte in der Lage sein werden, SMS über MFMessageComposeViewController zu senden. Wenn dies der Fall ist, dann betreibt Apple einen SMS-Server, der Nachrichten im Namen von Geräten sendet, die kein Mobilfunkmodem haben.
Keine Änderungen an dieser Klasse.
Sie können nun prüfen, ob das verwendete Nachrichtenmedium einen Betreff oder Anhänge akzeptiert und welche Art von Anhängen es akzeptiert. Sie können den Betreff bearbeiten und Anhänge zur Nachricht hinzufügen, sofern das Medium dies zulässt.
Keine Änderungen an dieser Klasse.
Keine Änderungen an dieser Klasse.
Keine Änderungen an dieser Klasse.
Keine wesentlichen Änderungen an dieser Klasse
Denken Sie daran, dass dies nicht auf Handys ohne iOS 4 funktioniert, und es wird nicht auf dem iPod touch oder dem iPad funktionieren, außer vielleicht unter iOS 5. Sie müssen entweder das Gerät und die iOS-Einschränkungen erkennen, bevor Sie diesen Controller verwenden, oder Sie riskieren, dass Ihre App auf kürzlich aktualisierte iPhones der Typen 3G, 3GS und 4 beschränkt ist.
Ein Zwischenserver, der SMS sendet, ermöglicht es jedoch allen iOS-Geräten, SMS zu senden, solange sie einen Internetzugang haben, und kann daher für viele Anwendungen die bessere Lösung sein. Alternativ können Sie auch beides verwenden und nur dann auf einen Online-SMS-Dienst zurückgreifen, wenn das Gerät ihn nicht unterstützt.
Sie können eine "sms:[Zielrufnummer]"-URL verwenden, um die SMS-Anwendung zu öffnen, aber es gibt keine Hinweise darauf, wie man einen SMS-Text ausfüllen kann.
Wenn Sie wollen, können Sie das private Framework CoreTelephony
verwenden, das die Klasse CTMessageCenter
genannt wird. Es gibt ein paar Methoden zum Senden von SMS.