How to access a Windows 10 Device in C# - c#

When you plug in (via USB) a mobile phone into a Windows 10 laptop, it comes up as a device. How do I access the files on this in C#. For example an iPhone when plugged in shows like this:
I would like to get all of the data off of that. I have already tried using the paths 'This PC\Apple iPhone\Internal Storage' and '\This PC\Apple iPhone\Internal Storage', both crashed the programming saying that they could not find the files.
I am then going to read and copy files off this in C#
Note: I would like this to work for all types of phone, not just an iPhone (Android and iPhone would be fine though).

The real problem you're trying to resolve is to access a device through the MTP protocol. The question has been asked before on SO.
You can try to use Windows Portable Device API directly (I'm assuming this is windows due to the screenshot).
Another option would be using the MediaDevices NuGet package like the linked answer does.

Related

Windows Phone app how to test if bluetooth connection is working in the simulator

How can i test if my application bluetooth connection is working properly. I cant test it on phone because i dont have 2 windows phones. Also if 2 users connect do they share the same screen i.e if one of them enters some info in a textbox can i make it so that the other one is unable to see while the user that wrote text in the tb can clearly read it.
You can get the Bluetooth Manager in NuGet.
Download Bluetooth Manager
To practice I've packaged up my Bluetooth Manager library. This is a little wrapper class that makes it really easy to use Bluetooth on Windows 10 applications. I've not tried it on Windows 10 on Raspberry Pi (but I've tried it on lots of other systems and it works fine). You can find out a bit more about it here. I use it so that I can print message on my little home made Bluetooth printer, but you can use it anywhere you want to talk over a Bluetooth serial connection.
Oh, and in case you are wondering why it is version 1.0.1 and not version 1.0.0 I found an interesting quirk in nuget. If your library class doesn't have a public constructor the package will fail to work because Visual Studio will complain that the class is "Inaccessible due to its protection level.". That's what happens when you try to use version 1.0.0

Windows iot/apps Programmatic Bluetooth Pairing

I'm trying to broadcast a bluetooth signal from a Raspberry Pi 2 running Windows Iot Core so that I can connect to it from smartphones and other devices, but I've been stuck for the last couple days on actually receiving a pairing signal.
Using the Windows Bluetooth docs I am able to broadcast the signal and I can see it from my desktop as well as from my phone.
However, this is as far as I can get. I want to be able to pair without a PIN (the device will not have a screen), but the pairing fails any time the device is selected.
I am using
SocketProtectionLevel.BluetoothEncryptionAllowNullAuthentication
and
DevicePairingKinds.None
But the connection callback is never hit. I have looked at many similar questions that are either unanswered or do not have the appropriate information since I am using an RPI2 and not a desktop app.
I am not looking to pair via the web interface, but simply through code
.
[UPDATE]
I've tried the 32feet.NET library but it appears to be too old to support the PI2.
I also tried a few NuGet packages, nothing seems to work yet.
I am not master in IoT but recently, I have started exploring it so I know Raspberry Pi 2 is hardware and we can use it to develop some basic IoT device/concepts. I can not help you with the code but may be with some idea.
I remember, for making any embedded system, we used serial port of pc and transferred command to devices. Something similar I found in one of the tutorial from David Jones. It is about to connect Bluetooth to windows 10 using serial port.
In both the explanations, SPP (Serial Port Profile) is used and also Universal Windows App is referenced. May be you get some start point or spark to comlete you work.
Check this and this. It also uses RPi 2.

Serial Port Comm with Arduino Device from Windows Store C# App

I'm currently working on getting a Leonardo device recognized and communicating with my app over a serial port in C# for the Windows 8 App Store. I'm using http://msdn.microsoft.com/en-us/library/windows/hardware/dn312121(v=vs.85).aspx#step2 as a guide, in conjunction with http://code.msdn.microsoft.com/windowsapps/USB-CDC-Control-sample-5ba19caa to guide me.
I'm having problems however in the sense that my Arduino device isn't showing up despite me entering my PID/VID and Class/Subclass/Protocol so I feel I'm missing some steps and was hoping someone that has experience with this could point me to a more specific/granular example.
My device is an Arduino Leonardo and I'm running windows 8.1 using Visual Studio 2013 Ultimate, code is in C#
Any help is appreciated!
Just general thoughts on regular windows applications (not aware of W8 AppStore):
Might help or might not, in the second case, sorry for wasting your time...
To get a "regular COM" device in Windows, without any additional drivers, you should make the device appear as USB Communication Device Class (aka CDC) - this is, among others, done via the appropriate class/subclass/protocol. The VID/PID don't care. This means the device should provide CDC/ACM USB descriptors to the enumerating USB host (windows) and implement the required endpoints and commands - supposedly there is already something existing for your board and you downloaded the firmware to it, right? You might want to try to connect such configured device to windows and after successful enumeration, new COM port should appear. If you program regular application, you just connect to such COM port via SerialPort class instance, no matter it is provided via USB subsystem... If this works, you should be able to start the AppStore part (where I have no clue how to help).
I'm just going to answer this as not currently possible. I ended up writing a desktop WPF application using metro UI/UX guidelines. Between that and ClickOnce deployment the store app feel is fairly well recreated, despite the store being ideal.
I sincerely hope that Microsoft decides to support this in the near future, the Metro SDK is really nice and I would love to eventually port it.

Get Window Phone Signal C#

I've already asked this but for iOS and they told me it was impossible.
I migrated to android and Windows Phone.
For Android I've found but not tested this
http://www.firstdroid.com/2010/05/12/get-provider-gsm-signal-strength/
AFAIK it works. My problem is I'm now testing windows phone but I'm unable to find anything related to this problem. Some people mention WMI and I'm unable to figure out what this is.
Thanks
P.s I,m programming for Windows Phone 8 and 7.1
The closest thing we have is Microsoft.Phone.Net.NetworkInformation and it's parent namespace Microsoft.Phone.Net . These API's don't provide the raw data for the signal but they are able to tell you if the phone is on mobile broadband, the network operator, roaming info, etc. It's designed so that you app can be away of data usage, and intelligently respond when using 3G vs Wifi.
There is a GetSignalBars method in ConnectionProfile, available in Windows Phone 8
http://msdn.microsoft.com/library/windows/apps/windows.networking.connectivity.connectionprofile.getsignalbars.aspx

can c# be used for communicating mobile and pc?

As a minor project in my degree I would like to communicate mobile and pc .I am interested to communicate through bluetooth is it possible to do so in c#?
If possible please provide me list of application or hardware i would requiere in order to do so.
thanks in advance
If (and it's a big if based on the lack of information in your question) you mean "How do I write an app on my PC, using C#, that can communicate with a Windows Mobile device that is connected to my PC via ActiveSync or WMDC" then the answer is RAPI. A free, open-source managed wrapper for it is here.
Yes its possible if its with windows mobile phone or pocket pc with bluetooth. You need a bluetooth enabled computer and mobile phone. For dev you need to download the windows mobile 6 sdk.
Then developing of the communication between desktop app and mobile phone app, you can use the 32feet.Net is open source.
When you download it and installs (well it unpacks to program files folder) you will have the dll that you make reference to in Visual Studio. Also you will get some sample apps. One of them is a Bluetooth Chat that works in Desktop, Pocket PC and SmartPhone.
Another option you could use is set up a web service that acts like an intermediary between the device and your machine. One huge benefit of this is that no longer are you bound by the distance requirements of bluetooth.
Of course if you're trying to build some sort of proximity service (do z when item x is 3 meters from item y) then bluetooth is probably the way to go.

Categories