Page 1 of 2 1 2 LastLast
Results 1 to 15 of 25

Thread: SMS Ontvangen

  1. #1

    SMS Ontvangen

    Ik ben hier mee bezig: http://www.fmxexpress.com/send-and-f...ey-on-android/

    Een SMS verzenden gaat perfect, maar het ontvangen van een SMS in mijn andriod App lukt maar niet.

    Wie kan daar iets over vertellen ?

  2. #2
    Je weet zeker dat je READ_SMS en RECEIVE_SMS permissions goed staan?

    Anders weet ik het ook niet zonder duidelijkere probleemomschrijving en/of foutmeldingen.

    Je zegt niet eens of je foutmeldingen krijgt (in exception-handler of adb logcat).

  3. #3
    permissions: READ_SMS en RECEIVE_SMS staan aan.

    Dit is de code die ik gebruik:

    procedure TForm1.Button4Click(Sender: TObject);
    begin
    memo1.lines.add(fetchsms);
    end;

    Geen enkel probleem tijdens de compilatie.

    Memo1 wordt wel gevuld maar deze inhoud heeft totaal niets met het ontvangen SMSje van doen.

    Dit krijg ik telkens te zien:
    1500292234 +3165xxxxxxxx Tik om een Glymse van mijn loactie te krijgen .......

    Het telefoon nummer is voor mij onbekend en heeft niets met het ontvangen SMSje van doen.

  4. #4
    Quote Originally Posted by MMSoft View Post
    Dit krijg ik telkens te zien:
    1500292234 +3165xxxxxxxx Tik om een Glymse van mijn loactie te krijgen .......

    Het telefoon nummer is voor mij onbekend en heeft niets met het ontvangen SMSje van doen.
    "Het" ontvangen SMSje???

    In de code staat een while (cursor.moveToNext) do begin
    Dus ik verwacht dat ie "ALLE" SMSjes (in je sms inbox) zou laten zien.

    Zo te zien aan de unix timestamp is dit een SMSje van Maandag 17 juli 2017 om 11:50:34
    Misschien heb je die toch ergens in/tussen je SMSjes staan.

  5. #5
    Dit is natuurlijk ook fout hè:

    Delphi Code:
    1. while (cursor.moveToNext) do begin
    2.   // ...
    3.   Result := IntToStr(trunc(msgunixtimestampms / 1000)) + ' ' + address + ' ' + body;
    4. end;

    Valt je hier niet iets op ????

    In de while loop wordt de Result van de functie elke keer OVERSCHREVEN.
    Je krijgt dus altijd de LAATSTE sms.

    Wat je wilt hebben is dit:

    Delphi Code:
    1. while (cursor.moveToNext) do begin
    2.   // ...
    3.   Result := Result + #13 + IntToStr(trunc(msgunixtimestampms / 1000)) + ' ' + address + ' ' + body;
    4. end;
    (note de Result + #13 na Result :=)

  6. #6
    Ik ben aan het zoeken hoe ik 1500292234 om kan zetten in Maandag 17 juli 2017 om 11:50:34

    Nu krijg ik namelijk als eerste (op de bovenste regel) de timestamp 1512474003, en wil daarvan de datum/tijd achterhalen.
    Dit is een redelijk recente SMS, maar zeker niet de laatste die ik binnen heb gekregen.

    //Dit geeft een fout melding:
    Result := Result + #13 + DateTimeToStr(msgunixtimestampms) + ' ' + address + ' ' + body;
    Last edited by MMSoft; 06-Dec-17 at 14:18.

  7. #7
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Delphi is great. Lazarus is more powerfull

  8. #8
    1512474003 is: 5-12-17 om 11:40:03, dat is niet de laatste SMS
    Last edited by MMSoft; 06-Dec-17 at 14:53.

  9. #9
    Er staat toch een UnixToDateTime() op die pagina. Die maakt van dat nummer een TDateTime die je weer verder kunt gebruiken met je functie.

  10. #10
    Het omzetten van de timestamp is gelukt, maar om de een of andere reden krijg ik niet de meest recente SMS te zien.

  11. #11
    Dat komt omdat je alleen maar echte SMSjes krijgt te zien.
    Sommige "SMS"jes hebben niet de "status" van SMS.
    Ook krijg je bijvoorbeeld niet de MMS berichten te zien.

    Misschien dat content://mms-sms/conversations of content://mms-sms/complete-conversations je meer geeft.

    Overigens is deze methode ook niet gegarandeerd voor de toekomst en op alle apparaten.
    (maar wat is er nieuw met Android )

  12. #12
    Dat komt omdat je alleen maar echte SMSjes krijgt te zien.
    Sommige "SMS"jes hebben niet de "status" van SMS.
    Alle recente SMSjes komen van dezelfde SMS module.
    Het lijkt mij dan toch wel vreemd als deze niet allemaal dezelfde SMS status hebben.

  13. #13
    De SMS'jes kunnen onderdeel van een "Conversatie" zijn.
    Dan staan ze in je berichten-app dus bij elkaar.

    Je zou content://sms/all kunnen proberen.


    Inbox = "content://sms/inbox"
    Failed = "content://sms/failed"
    Queued = "content://sms/queued"
    Sent = "content://sms/sent"
    Draft = "content://sms/draft"
    Outbox = "content://sms/outbox"
    Undelivered = "content://sms/undelivered"
    All = "content://sms/all"
    Conversations = "content://sms/conversations"

  14. #14
    Als ik deze regel: uri:=StrToJURI('content://sms/inbox');
    Wijzig in: uri:=StrToJURI('content://sms/all');

    Dan krijg ik deze fout melding: Access violation at address A09AF3E0, accessing address 00000000

  15. #15
    Waarschijnlijk omdat één van deze regels niet van toepassing mag zijn op "all".

    Delphi Code:
    1. addressidx:=cursor.getColumnIndex(StringToJstring('address'));
    2. personidx:=cursor.getColumnIndex(StringToJstring('person'));
    3. msgdateidx:=cursor.getColumnIndex(StringToJstring('date'));
    4. msgdatesentidx:=cursor.getColumnIndex(StringToJstring('date_sent'));
    5. protocolidx:=cursor.getColumnIndex(StringToJstring('protocol'));
    6. msgreadidx:=cursor.getColumnIndex(StringToJstring('read'));
    7. msgstatusidx:=cursor.getColumnIndex(StringToJstring('status'));
    8. msgtypeidx:=cursor.getColumnIndex(StringToJstring('type'));
    9. msgreplypathpresentidx:=cursor.getColumnIndex(StringToJstring('reply_path_present'));
    10. subjectidx:=cursor.getColumnIndex(StringToJstring('subject'));
    11. bodyidx:=cursor.getColumnIndex(StringToJstring('body'));
    12. servicecenteridx:=cursor.getColumnIndex(StringToJstring('service_center'));
    13. lockedidx:=cursor.getColumnIndex(StringToJstring('locked'));
    Je kunt er even per regel een log bovenzetten en kijken waar die op stuk loopt.

    Anders moet je alleen even body en date gebruiken en zo kijken of je wel alles terug krijgt.

Page 1 of 2 1 2 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •