아이폰어플개발정보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 오늘마감

댓글을 달아 주세요

아이폰어플정보2010. 6. 20. 23:17
아이폰 SMS 글자수 제한 사용 어플

우리의 아이폰은 단문문자메시지(SMS)를 보낼때

한국의 SMS기본 80바이트 제한을 알리는 기능이없습니다.

(단 KT쪽에서는 LMS 까지 무료라는데 LMS의 바이트 제한은 200kbyte 입니다)

(현재 멀티미디어를 넣은 MMS는 아이폰에서 무료입니다 .)

이글은 유용한 80바이트 단문을 쓰기위한 어플을 소개해드리겠습니다.

한국형 핸드폰이아닌 세계공용화 폰이기에 한국에만 특별하게 해줄수 없다는 것이였을까요?

애플에서도 아이폰의 기능을 SK처럼 자회사에 알맞게 변경하는것을 용납할수 없어서

KT에 자신들의 기기를 마음대로 수정못하게 해서랄까요?

뭐 어찌됐건 결과는 소비자 몫이죠.

KT에서 SMS 크기를 알려주는 기능이 있으면 좋을텐데 아니면 어플이라도 나왔어야 하는 겁니다.

그래서SMS과련된 유용한 어플 3개를 알려드리겠습니다.

위의 iFreeSMS, MoaSMS, ParanSMS입니다.

쓰는 법은 설명이 필요 하지 않을 정도로 무지 간단합니다.

말그대로 보통 핸드폰을 사용하셨다면 쉽게 간단하게 사용이 가능하겠지요.

다만

Moasms 경우 사이트에서 여러 사이트에서 제공하는 무료문자들을 긁어모아서

가입시킨뒤 문자를 보내는 기능이있으며.

파란sms는 메일 사용량에 따라 무료문자를 주는 기능이있습니다.



출처 : http://blog.naver.com/PostView.nhn?blogId=artsoflife&logNo=30076865835
Posted by 오늘마감

댓글을 달아 주세요