2013-03-13 2 views
4

MFMesageComposeViewController을 사용하여 메시지를 보내면 문제가 발생합니다.MFMessageComposeViewController : iMessage가 아닌 Cellular Message로 메시지를 보내도록 제한하는 방법

여러 수신자에게 메시지를 보낼 때 iMessages의 설정이 사용 또는 사용 안 함인지 여부가 문제가되지 않습니다. 그러나 하나의 연락처로 메시지를 보내고 iMessages이 설정에서 활성화되어있는 경우 메시지 앱에 "배달 실패"이 표시되고 iMessage으로 표시됩니다.

어떻게하면 MFMessageComposeViewController이 휴대 전화 메시지로 강제 전송할 수 있습니까?

내 코드는 다음과 같습니다 한마디로

[[[MFMessageComposeViewController alloc] init] autorelease]; 
if ([MFMessageComposeViewController canSendText]) { 
    controller.body = @"Sample Text Message"; 
    controller.recipients = [NSArray arrayWithObject:@"XXXXXXXXXXXX"]; 
    controller.messageComposeDelegate = self; 
    } 

답변

2

- 당신은 할 수 없습니다. 장치에서 iMessage를 사용하고 수신자를 iMessage 클라이언트로 사용할 수있는 경우 메시지는 iMessage로 전송됩니다. 이 동작은 iOS 자체에서 정의되며 변경할 수 없습니다.

+1

아니요 Apple ID 또는 iMessage ID –

+0

으로 등록되지 않은 번호로 테스트합니다. 중요하지 않습니다. 귀하의 코드에서 휴대 전화 번호의 상태를 확인할 수도 없습니다. iMessage 또는 셀룰러 메시지 전용 클라이언트입니까? –

+1

이것이 iOS 최신 버전의 버그 일 수 있다고 생각합니다. 기차 시간에 'SMS'를 보내면 비 iMessage 사용자에게 SMS를 보냈습니다. 이제는 iMessage와 상관없이 수신자에게 iMessage가 있는지 여부에 관계없이 전송됩니다. 아닙니다. 메시지로 들어가서 SMS로 다시 보내야합니다. –

1

Apple은 메시지가 'iMessage'또는 'SMS'로 전송되는지 여부를 감지하는 방법을 제공하지 않습니다.

또한 인터넷에 연결되어 있지 않으면 메시지가 iMessage로 보내지지 않습니다. 인터넷 연결 속도가 느린 경우 메시지가 자동으로 SMS로 전송됩니다.

받는 사람이 iMessage 클라이언트로 사용할 수 있고 iMessage가 장치에서 활성화되어 있으면 메시지가 iMessage로 전송됩니다. 그리고 그 당시 인터넷에 연결되어 있지 않으면 '보내기'버튼이 자동으로 비활성화됩니다.