'보내는'에 해당되는 글 1건

  1. 2010.10.05 아이폰에서 SMS 문자 보내는 어플 만드는 방법
아이폰어플개발정보2010. 10. 5. 23:52
아이폰에서 SMS 문자 보내는 어플 만드는 방법

Apple은 sms api공개를 하고 있지 않다.
향후에도 없을것이라고한다.
이유는 모르겠고, 아래처럼 C로 단말기에 직접접근하는 방법뿐이다. 
일반휴대폰이나 임베디드제품개발시  CDMA단말기와 아래와 같은 코드로 인터페이싱한다. 
그러나, 아래와 같은 코드로 app만들면 reject될지도 모름(sms api를 공개안한건 못하게 하려한듯하므로).
AT명령어로써 단말제조업체가 제공하는 프로토콜대로 하면, 패킷을 3G망에 태워 TCPIP방식으로 장문의 메세지도 보낼 수 있다. 과금이 패킷단위라면, SKT의 경우 10초당 13원으로 TCPIP요금을 부과하고있으며,KT는 모름.
굳이 만들겠다면 kt에 확인해서 아래 미국에서 보내는 방식의 AT명령어셋과 동일한지 확인을 할 필요가있다. 통신사나 단말제조사의 스펙이 우리나라와 미국이 다를 수 있기때문이다.
So you know C, you like iPhones, and you want to programmatically send an SMS. I spent a few days of my life a few months ago figuring this out.

Here are the includes and a pretty generic funtion to connect to the iPhone modem and let you do some magic.
(I realize some of those headers aren't actually needed, I think. I copied them from my command-line tool that uses these functions.)
Code:
#include #include #include #include #include #include #include #include #include int connect(){ int speed = 115200; unsigned int null = 0; unsigned int handshake = TIOCM_DTR | TIOCM_RTS | TIOCM_CTS| TIOCM_DSR; struct termios term; int fd = open("/dev/tty.debug", O_RDWR | 0x20000 | O_NOCTTY); if(fd == -1) { perror"Error: "); exit(1); } ioctl(fd, 0x2000740D); fcntl(fd, 4, 0); tcgetattr(fd, &term); ioctl(fd, 0x8004540A, &null); cfsetspeed(&term, speed); cfmakeraw(&term); term.c_cc[VMIN] = 0; term.c_cc[VTIME] = 5; term.c_iflag = (term.c_iflag & 0xFFFFF0CD) | 5; term.c_oflag = term.c_oflag & 0xFFFFFFFE; term.c_cflag = (term.c_cflag & 0xFFFC6CFF) | 0x3CB00; term.c_lflag = term.c_lflag & 0xFFFFFA77; term.c_cflag = (term.c_cflag & ~CSIZE) | CS8; term.c_cflag &= ~PARENB; term.c_lflag &= ~ECHO; tcsetattr(fd, TCSANOW, &term); ioctl(fd, TIOCSDTR); ioctl(fd, TIOCCDTR); ioctl(fd, TIOCMSET, &handshake); return fd; }
You don't really need to understand all of that. If you want to, Google ioctl and the other functions used.

Code:
void send(char *number, char *message, int modem) { write(modem,"AT+CMGF=1\r\n",11); sleep(1); write(modem,"AT+CMGS=\"",9); write(modem,number,strlen(number)); write(modem,"\"\r\n",3); sleep(1); write(modem,message,strlen(message)); write(modem,"\x1A",1); sleep(1); close(modem); }
There is a function that takes a pointer to two strings and an int (the file-descriptor of the modem). AT+CMGF=1 sets the phone into SMS mode. AT+CMGS is the command to start writing the address and message into memory, which is terminated with "\x1A" (^Z) to finish the sending process off.

There you go. Switching plain C out for Objective C shouldn't be too hard.
__________________
http://www.ipodtouchfans.com/forums/showthread.php?t=144432



출처 : http://blog.naver.com/PostList.nhn?blogId=philipousys¤tPage=42
Posted by 오늘마감

댓글을 달아 주세요