I have a project I'm working on that requires our WPF application read SMS messages off of a user's connected Windows Mobile phone so we can display recent ones, etc.
I've had little luck with any of the libraries I've found. Most promising seemed to be OpenNETCF.Desktop.Communications but ultimately it seems like I won't be able to do what I need to with it.
What's the best way to read SMS messages off of a connected phone? Will it just be easier for me to write some sort of service app for the phone that acts as a server and our WPF app as the client?
Thanks!
There's nothing out-of-the-box that will do what you want. RAPI, which the OpenNETCF library wraps, has a set of communication APIs, but nothing for SMS. It does have the ability to snap-in custom APIs, so you could create a custom API and use that. The advantage with this strategy is you don't need any user intervention to get stuff onto the device (no copy and run of a service app stuff). The down side is that the custom RAPI DLL for the device must be native code.
If you go with your own mechanism, you can then use the POOM APIs in managed code to get the messages and ship them. The only challenge there is that you have to run some form of a "service" app on the device to listen for calls, which means writing your own protocol, which means a fairly large test matrix.
Jeyo have a product that pulls SMS messages from a phone into outlook PST files. Strikes me that you could just use that product and trawl the PST for recent messages (bit of a kludge I know, but if you were desperate) or talk to them about if they'll licence some of their code for you?
Related
I want to make a program that transmits strings from an Android device, to the web or directly to my PC.
Do note that the android and windows device are connected to the same wifi if this makes a difference. The problem here is that I do not know how to send strings from one device to another. I am thinking of doing it in a txt file and then reading it with the program on my PC (Which I have already tested), but I don't know how to transmit it.
Yes, you can share a data from cross platform devices. There are many methods to do it. I would personally recommend using Web APIs using asp.net core, the consume that Web API in your android application, it can be in Xamarin, and for Desktop you can used HttpClient package to consume either in WPF or Winform.
I am developing a mobile (Xamarin.IOS) and a desktop app (C# Winforms) for our small start-up for internal use. I want to be able to send commands (not remote notifications) to the client (mobile app) through our main desktop app.
For example; I want all our employees using our mobile app to perform certain task, let's say, show a popup window with specific text when they open up the app. Any ideas about how to implement such kind of thing? Is is technically possible to tell a device to remotely execute certain management commands?
Thanks in advance.
There are multiple ways of doing this.
A Microsoft MVP, Mark Arteaga, suggests using Azure Functions-HTTP Triggers to do this. He presented this in multiple Microsoft events and also has a Github repo where he implements it in a sample mobile app.
So whenever you need to, you would send commands through Azure Functions to the client using similar, and if you want to go one step further, you can even look into implementing it with Backgrounding using Shiny
I've been given the task of building a Windows Mobile app for our company that quickly pairs a device by scanning it's bar code. I can discover the device, and talk to it, but I am stuck as far as pairing.
In C# / Windows Mobile 6, how do I pair a device? I don't really need to talk to the device within the app, I need to pair it so other applications can use it.
Is there an API I need to do this? I've seen things saying I need to register a pass key, etc? I can't seem to find any documentation on the actual pairing process, just connecting to it. (Just connecting to it, doesn't actually pair it.)
You can use my library 32feet.NET. Use method BluetoothSecurity.PairRequest See e.g. Bluetooth Security (That should work regardless of whether the device has Microsoft's own Bluetooth stack installed or the device has Widcomm/Broadcom or SSO Bluetopia).
The process of 'pairing' should also enable the services at the same time. If not we probably have other APIs for that too. Which services are used? SerialPort, others?
I want to build some sort of interface that will monitor our real time routing/switching system. I would like to give a lot of visual feedback to be able to monitor its status visually. Our system and clients are not co-located so they would need to connect via TCP/IP.
I would like to be able to service any number of monitoring clients (although this will probably only ever be about 4-6 clients). I thought of using SilverLight but there appears to be one or two tricks involved in getting SilverLight to connect back to an application running on a different port.
I have also thought of using HTML5 canvas and websockets. Another alternative is to just create the clients using normal Window Forms and perhaps WPF. But this means that to monitor the application the client will have to be downloaded before. I would prefer something that is as easily accessible as web app?
What are some of the more common application stacks to achieve this? What should I watch out for?
EDIT:
Just to add: This will be an internal tool only. But we have offices in a couple of locations.
any choice in this direction could be subjective and arguable, surely somebody could suggest any possible web framework or language...
I would consider, however because of your .NET and C# tags, ASP.NET MVC 3, so basically web based plugin-less ( NO Silverlight ) HTML 5 solution.
Consider that StackOverflow is done in same way (MVC, ASP.NET, SQL Server... ) and outperforms as we all know.
the way you grab the underlying events from TCP, so the way you capture and provide the data from TCP, it's another thing from the front end, I would probably write a Windows Service if the traffic is so high and you want to grab and store data anything regardless any active client connection.
There are plenty of real time charting controls out there also for MVC, MS Chart Control. DevExpress, ExtJS integrated ones...
"real time" and Browser is bothering me.
I would indeed go WPF or WinForms. Using the ClickOnce-Deployment you can make this a no-pain for the user and you can roll-out new versions just by redeploying them and having the user restart the application.
In my company this works really fine and we have no problems whatsoever. The only problem with this is, that the app.config is somewhat hard to find and keep current/valid (redeploy) but in your case this won't change per client (or so I guess).
I agree with #Davide - I would go for a WebService that will obtain all routing/switching data in realtime. You will have a web application and on the client side you will have JQuery/AJAX fetching realtime data from the WebService component.
I've seen cool demo's of Web Orb doing something similar to what you want. http://www.themidnightcoders.com/
If you are starting from scratch, it would be good to check out WCF (Windows Communication Foundation). It's great because it can expose your functionality in many ways, using nothing more than modifying a config file.
If you want a Windows client app, you can host it in a Windows Service, or simply include it as a side assembly. For web apps, you can choose between various formats (JSON, XML), channels (HTTP, TCP) and protocols (SOAP, ODP).
If I got it right, there will be a server-side application which will collect information from the devices and expose it to clients as a service. In that case, a WCF application might be hosted in a Windows Service or IIS on a server machine, and expose the data though one or more endpoints (HTTP, TCP).
I am not aware of problems in connecting a SilverLight app to a service, but I would rather go for a HTML5/JavaScript combo instead, for easier deploying and compatibility with a wider range of devices (no plugins needed). ASP.NET MVC should be the best choice for the web app.
Okay, so what I need to do is to write C# code, to integrate into an existing application.
I will (most likely) be using a Nokia 7230 mobile phone, and I'm willing to use the Nokia PC Connectivity SDK/API, or just AT commands over from C#, whatever works.
The catch here, though, is that I have absolutely no idea where to even start. I would be eternally grateful if someone could give me a step-by-step guide/tutorial on how to go about setting everything up. I've downloaded the newest versions of the PC Connectivity SDK, the PC Connectivity API, the PC Suite, and the Nokia Connectivity Framework.
If it's at all possible for me to test code with an emulator before actually purchasing a phone, that would be fantastic.
Thank you in advance for any help/advice.
GSMComm is a useful C# library for this, it comes with a bunch of samples/tools to mess around with as well.
I get the impression you going to buy a Nokia handset specifically to handle your SMS stuff? If so, you could just buy a GSM Modem (depending on your location) they are cheaper, don't include extraneous features and are not dependent on using manufacturer specific software.
What you are looking for is called an "SMS Gateway". Most of the articles on the internet discuss how to create one using Linux.
I did find this article though, which teaches you how to do it using C#: http://www.ozekisms.com/high-performance-sms-gateway/product-manual/index.php?owpn=315
It looks like you need the Nokia PC Connectivity API (note: Forum Nokia registration required for download):
Developers can use the Content Access API to build PC applications
that create, modify, and delete SMS and MMS messages. The API can be
used to send and receive SMS and MMS messages.