iOS сменить SMSC программно - PullRequest
1 голос
/ 19 марта 2012

Я пишу приложение, которое может тестировать различные SMSC (центры обслуживания коротких сообщений) от оператора.Поэтому мне нужно изменить SMSC, который iPhone использует для отправки SMS.Есть ли способ сделать это?

Android предлагает метод sendMessage с SMSC в качестве параметра, есть ли аналог в iOS?Мне все равно, если он использует частные вызовы API, так как я не буду выпускать свое приложение в любом случае (только для внутреннего тестирования).Любая помощь приветствуется, спасибо.

Ответы [ 2 ]

7 голосов
/ 20 марта 2012

Это решение работает на не взломанных телефонах, но оно не попадет в магазин приложений. Он использует частные API и очень похож на ваше описание sendMessage для Android.

Вам нужно будет связать свой проект со структурой CoreTelephony (общедоступной сейчас) и создать заголовок, описанный ниже. Там и пример включен.

CTMessageCenter.h:

#import <Foundation/Foundation.h>

@interface CTMessageCenter : NSObject
{
}

+ (id)sharedMessageCenter;
- (id)init;
- (id)sendSMS:(id)fp8;
- (id)sendMMSFromData:(id)fp8 messageId:(unsigned int)fp12;
- (id)sendMMS:(id)fp8;
- (id)send:(id)fp8;
- (id)incomingMessageWithId:(unsigned int)fp8 telephonyCenter:(struct __CTTelephonyCenter *)fp12 isDeferred:(BOOL)fp16;
- (int)incomingMessageCount;
- (id)allIncomingMessages;
- (void)acknowledgeIncomingMessageWithId:(unsigned int)fp8;
- (void)acknowledgeOutgoingMessageWithId:(unsigned int)fp8;
- (id)incomingMessageWithId:(unsigned int)fp8;
- (id)deferredMessageWithId:(unsigned int)fp8;
- (id)statusOfOutgoingMessages;
- (id)encodeMessage:(id)fp8;
- (id)decodeMessage:(id)fp8;
- (BOOL)isMmsEnabled;
- (BOOL)isMmsConfigured;
- (BOOL)sendSMSWithText:(id)fp8 serviceCenter:(id)fp12 toAddress:(id)fp16;

@end

Пример:

#import "CTMessageCenter.h"

BOOL success = [[CTMessageCenter sharedMessageCenter]  sendSMSWithText:@"test" serviceCenter:serviceCenterNumberAsString toAddress:numberAsString];
2 голосов
/ 07 июня 2013

Вам нужно использовать AT Command для обновления SMSC на SIM-карте.

В iOS вы можете использовать Private Framework SKTelephonyController.

AT Command для получения текущего SMSC на SIM-карте:AT + CSCA?

Запись на SIM-карту: AT + CSCA = "1xxxxxxxxxx", 145

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...