Получение контактов /сохранение контактов на SIM-карте

У меня есть экран GSM и есть ли способы получить сохраненные контакты на SIM-карте? Кажется, что библиотека GSM не поддерживает запись данных на /чтение данных с SIM-карты?

Моя цель - сохранить номер SIM-карты и некоторые переменные на самой SIM-карте, поэтому мне не нужно будет время от времени менять программу.

Все, что мне нужно сделать, это ввести все переменные на SIM-карте через любой мобильный телефон (возможно, сохраняя переменные в качестве контактов, поскольку функция телефонной книги должна быть очень распространена на телефонах).

gsm
11 голосов | спросил MW_hk 2 Mayam14 2014, 07:31:14

2 ответа


6

Что вы исследовали до сих пор? По ссылке, которую вы указали для экрана, в третьей строке описания приведена ссылка на набор команд AT используется чипом.

Я просто сделал несколько быстрых поисков и нашел:

  

2.2.4 ATD><n> Исходный телефонный звонок на номер в памяти

     

3.2.26 AT+CPBF Найти записи телефонной книги

     

3.2.27 AT+CPBR Прочитать текущие записи телефонной книги

     

3.2.28 AT+CPBS Выбор памяти для телефонной книги

вероятно, хорошее место для начала.

ответил Madivad 2 Maypm14 2014, 15:49:43
1

Благодаря @Madivad для вдохновения команды AT. Я не очень хорошо знаком с GSM и Arduino. Но в любом случае, ниже работало для меня.

Кредиты для @Madivad и людей из форума arduino.

#include <GSM.h>
GSM gsmAccess(true);
int sizer = 200;
char myNumber[200];
int timeout = 5000; // in milli seconds

void setup()
{
  Serial.begin(9600);

  boolean notConnected = true;

  Serial.println("Connecting to the GSM network");

  while(notConnected){
    if(gsmAccess.begin() == GSM_READY) // Note: I do not require PIN #
      notConnected = false;
    else {
      Serial.println("Not connected, trying again");
      delay(1000);
    }
  }

  Serial.println("Connected");

  theGSM3ShieldV1ModemCore.println("AT+CPBS=\"SM\"");  
  int start1 = millis();   
  while((millis() - start1) < timeout){
    Serial.print(theGSM3ShieldV1ModemCore.theBuffer().read());
  }   
  Serial.print("Set to look at SIM card storage");

  // search for contact name "test"
  theGSM3ShieldV1ModemCore.println("AT+CPBF=\"test\"");  
  start1 = 0;
  start1 = millis();   
  while((millis() - start1) < timeout && !theGSM3ShieldV1ModemCore.theBuffer().extractSubstring(",\"", "\",", myNumber, sizer)){
    Serial.print(theGSM3ShieldV1ModemCore.theBuffer().read());
  }   
  Serial.print("Got contact number");

 // print out the phone of "test"
 Serial.println(myNumber);

}

void loop()
{

}
ответил MW_hk 5 Maypm14 2014, 13:39:37

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132