miXer Skrevet 21. august 2010 Del Skrevet 21. august 2010 (endret) Hei Jeg har laget en popup som mottar sms, men jeg finner ikke ut hvordan jeg kan motta multipart meldinger ved å vise bare en melding, ikke alle oppdelt. Noen som har peil? Endret 26. august 2010 av miXer Lenke til kommentar
Hieronymus Skrevet 23. august 2010 Del Skrevet 23. august 2010 Hei Jeg har laget en popup som mottar sms, men jeg finner ikke ut hvordan jeg kan motta multipart meldinger ved å vise bare en melding, ikke alle oppdelt. Noen som har peil? Kode? --- BalleB Lenke til kommentar
miXer Skrevet 24. august 2010 Forfatter Del Skrevet 24. august 2010 Mener du at jeg skal legge ut kode? Kan ikke helt se noen grunn til det. Det eneste jeg lurer på er om noen vet hvordan man mottar en melding i android som er lengre enn 160 tegn, altså en oppdelt melding og sette denne sammen til en melding. Lenke til kommentar
Hieronymus Skrevet 24. august 2010 Del Skrevet 24. august 2010 Mener du at jeg skal legge ut kode? Kan ikke helt se noen grunn til det. Det eneste jeg lurer på er om noen vet hvordan man mottar en melding i android som er lengre enn 160 tegn, altså en oppdelt melding og sette denne sammen til en melding. Og jeg ser ingen grunn til å komme med noe løsningsforslag før jeg ser hva du har prøvd til nå. --- BalleB Lenke til kommentar
miXer Skrevet 24. august 2010 Forfatter Del Skrevet 24. august 2010 Dette er koden jeg bruker for å motta sms. Bundle bundle = intent.getExtras(); if (bundle != null) { //get messages Object[] pdus = (Object[])bundle.get(Keys.MESSAGE_PDUS); SmsMessage[] msgs = new SmsMessage[pdus.length]; for (int i = 0; i < msgs.length; i++) { msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]); //give out notify dialog with received sms try { Intent in = new Intent(context, SMSDialog.class); in.putExtra(Keys.CONTACT_NUMBER, msgs[i].getOriginatingAddress()); in.putExtra(Keys.RECEIVED_MESSAGE, msgs[i].getMessageBody().toString()); in.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_SINGLE_TOP); context.startActivity(in); } catch (Exception ex) { Toast.makeText(context, "SMS exception: " + ex.toString(), Toast.LENGTH_LONG).show(); } } } Jeg har prøvd flere ting. 1. Jeg har prøvd å sjekke msgs.length() for å se om en multipart melding blir mottatt på en gang slik at jeg bare kunne kombinert disse, noe det ikke blir. 2. Jeg har prøvd å sjekke msgs.getMessageBody().toString().length() for å se om teksten var lengre enn 160, noe den ikke var. Har googlet masse, men finner ingenting. Lenke til kommentar
Hieronymus Skrevet 25. august 2010 Del Skrevet 25. august 2010 I fjor jobbet jeg endel med programvare for å sende og motta SMS'er fra Java, via RxTx over USB-baserte GSM-modem. Å sende og motta meldinger <= 160 tegn var plankekjøring, men > 160 tegn var skikkelig pain in the *ss. Fant etterhvert SMSLIB (http://smslib.org/download/) som inneholdt kode for å kode / dekode PDU-arrayer. Det gjorde iallefall implementeringen av multipart meldinger mye enklere. Det er jo Java, så det burde fungere på Android også. --- BalleB Lenke til kommentar
miXer Skrevet 26. august 2010 Forfatter Del Skrevet 26. august 2010 (endret) Fant ut av det. Som jeg sa tidligere hadde jeg prøvd å sjekke msgs.length(), men dette hadde jeg bare prøvd på emulatoren, og den kan sende multipart meldinger, men den greier ikke å ta imot slike. Når jeg prøvd på min egen desire, fungerte det helt topp. Dersom det er en multipart melding vil msgs.length() inneholde antall. Object[] pdus = (Object[])bundle.get(Keys.MESSAGE_PDUS); SmsMessage[] msgs = new SmsMessage[pdus.length]; int antall = msgs.length(); Endret 26. august 2010 av miXer Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå