Avatar billede misbruger Nybegynder
20. november 2008 - 13:20 Der er 3 kommentarer og
1 løsning

Send rigtige SMS'er - Compact Framework 3.5

Jeg har downloaded Microsoft SendSMS sample, installeret og det virker fint, næsten da...

De beskeder som den sender bliver ikke modtaget som rigtige SMS'er, men derimod som "Network messages"
Dvs. at de bliver ikke lagt ind i indbakken, men bliver derimod blot vist på skærmen, og den eneste mulighed er at trykke "Afvis"

Deres sample tager brug af...
[DllImport("sms.dll")]
private static extern IntPtr SmsOpen(String ptsMessageProtocol, IntPtr dwMessageModes, ref IntPtr psmshHandle, IntPtr phMessageAvailableEvent);

[DllImport("sms.dll")]
private static extern IntPtr SmsSendMessage(IntPtr smshHandle, IntPtr psmsaSMSCAddress, IntPtr psmsaDestinationAddress, IntPtr pstValidityPeriod, byte[] pbData, IntPtr dwDataSize, byte[] pbProviderSpecificData, IntPtr dwProviderSpecificDataSize, SMS_DATA_ENCODING smsdeDataEncoding, IntPtr dwOptions,  IntPtr psmsmidMessageID);

Er der nogen der ved hvorledes jeg får den til at sende "rigtige" sms beskeder?

NB. Deres ekstremt simple sample, kan downloades her...
http://www.microsoft.com/downloads/details.aspx?familyid=4031FCF9-704A-41E6-9B06-04A278125BBE&displaylang=en
Avatar billede tjens Nybegynder
20. november 2008 - 20:37 #1
Teleselskaberne lukkede deres offentlige gateways mellem internet og telefonnet for flere år siden.

Har du købt adgang til en gateway?
Avatar billede bvli Praktikant
20. november 2008 - 22:36 #2
Hej.

private enum PROVIDER_SPECIFIC_MESSAGE_CLASS

{

PS_MESSAGE_CLASS0 = 0,

PS_MESSAGE_CLASS1,

PS_MESSAGE_CLASS2,

PS_MESSAGE_CLASS3,

}

PS_MESSAGE_CLASS0 indicates the message should be displayed immediately but not stored on the Subscriber Identity Module (SIM). PS_MESSAGE_CLASS1 indicates the service center handling the message should be notified when the message goes through and it should be stored. PS_MESSAGE_CLASS2 indicates the message should be first sent to the SMS data field within the user's SIM before notification is sent to the service center handling the message. If the SIM is filled, an error message is sent to the service center. PS_MESSAGE_CLASS3 indicates when the message has successfully been sent to the destination and can be stored to SIM, the service center will receive a notification.

Check evt: http://msdn.microsoft.com/en-us/library/aa446545.aspx#netcfsendsms_topic2

/B :)
Avatar billede misbruger Nybegynder
21. november 2008 - 08:53 #3
tjens... det er compact framework, og i mit tilfælde en smartphone.

----

Hi bvli

Jeps den har jeg luret, men kan ikke helt gennemskue hvorledes den bruges?
I selve samplet tages der ikke brug af den enum nogle steder?
Avatar billede misbruger Nybegynder
24. november 2008 - 08:50 #4
ok, fandt selv ud af det.

Ved at sætte den korrekte byte, kan man skifte message class..

// The data for the TEXT_PROVIDER_SPECIFIC_DATA
Byte[] ProvData = new Byte[12];

// Sets Messagetype to class 1 (meaning real SMS, not flash SMS)
byte[] classData = BitConverter.GetBytes((int)PROVIDER_SPECIFIC_MESSAGE_CLASS.PS_MESSAGE_CLASS1);
classData.CopyTo(ProvData, 4);
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester