Перейти к содержанию
Fire Monkey от А до Я
  • 0

чтение смс


gonzales

Вопрос

Комрады, всем доброго времени суток!

подскажите, может кто сталкивался. Читаю приходящие на андроид смс.

function TForm1.FetchSms: string;
var
  cursor: JCursor;
  uri: Jnet_Uri;
  id_smsid, addressidx, bodyidx: integer;
  smsid, address, body: string;
begin
  uri := StrToJURI('content://sms/inbox');
  cursor := SharedActivity.getContentResolver.query(uri, nil, nil, nil, nil);
  id_smsid := cursor.getColumnIndex(StringToJString('_id'));
  addressidx := cursor.getColumnIndex(StringToJString('address'));
  bodyidx := cursor.getColumnIndex(StringToJString('body'));
  cursor.moveToFirst;
  begin
    Result := '';
    smsid := JStringToString(cursor.getString(id_smsid));

    address := JStringToString(cursor.getString(addressidx));
    body := JStringToString(cursor.getString(bodyidx));
    if address = form2.TelEdit.Text then
    begin
        Result := { UnixTimeToDateTime
          (msgunixtimestampms) { +IntToStr(trunc(msgunixtimestampms/1000))  + '+'
          + } body;
    end;
  end;
end;

На выходе, если в смс стоит '1', получаю '1'#012. Причем, если вывести Result в showmessage - будет '1', но программа не хочет переводить его в целочисленный вид. А также Length('1'#012)=2. Попытка отбросить последний символ ни к чему не приводит.

 

procedure TForm1.SMSTimerTimer(Sender: TObject);
var
  mess: string;
  i: integer;
  sms_num: string;
  l:integer;
begin
{$IFDEF ANDROID}
  mess := Form1.FetchSms;

  if mess <> '' then
  begin
    l:=Length(mess);
    for i := 0 to  l - 2 do
      if mess[i] <> '' then
        sms_num := sms_num + mess[i]; 
    for i := 0 to Form1.InSMSMessages.ChildNodes.Count - 1 do  //<------------ВОТ СЮДА ПРОГРАМММА НЕ ДОХОДИТ
    begin
      if Form1.InSMSMessages.ChildNodes.Nodes[i].GetAttribute('ID') = strtoint(sms_num) then
      begin
        Form1.Active := true;
        smslabel.Text := Form1.InSMSMessages.ChildNodes.Nodes[i].GetAttribute('Name');
        Form1.SMSMessage.Visible := true;
        Vibrator.vibrate(1000);
        break;
      end;
    end;
  end;
{$ENDIF}
end;

 

Может кто подсказать, что это за # и как от него избавиться.

Всем заранее спасибо!

Изменено пользователем gonzales
Ссылка на комментарий

Рекомендуемые сообщения

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...