I am using the ShareMediaTask in my Windows Phone 8 application, and I am trying to determine the specific capabilities and requirements on a users device. Does a users Data Connection have to be turned on on their device for the ShareMediaTask to successfully send a picture? Also, is it required to have ID_CAP_NETWORKING checked in my application's WMAppManifest for ShareMediaTask to work? Must both of these be on?
What I have is ID_CAP_NETWORKING off in my WMAppManifest, which I do not believe is require for ShareMediaTask, but my device's Data Connection switched to On in the phone settings. Is this correct?
ShareMediaTask does not have any capability requirements for inclusion within your app.
However, for the user to be able to actually share the media they will need to be able to connect to the internet and the selected services. This happens outside of your app though and so your app does not need to declare the networking capability directly.
For reference, the rules of capability requirements are defined in
"C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.0\Tools\Marketplace\Rules.xml"
Related
I am using the webusb API in Google Chrome to try to connect a device to the browser. It worked with webserial API, but I am having trouble getting it to work with webusb API.
I am using HTTPS (Github pages)
I enabled #new-usb-backend for my browser
I can open the device and select configuration, but device.claimInterface(0) is not working (and I can confirm that 0 is an interface number).
None of the two interfaces this device has seems to be claimed
The error I get looking at chrome://device-log is
Failed to claim interface: Access denied (insufficient permissions)
I'm not sure where to go from here. I would appreciate some help.
Thank you.
device.claimInterface(1) worked. I heard somewhere mac automatically claims interfaces. Perhaps the first interface was claimed, although the api indicated otherwise. Anyhow, something about the second interface worked that didn't work in the first.
That error message indicates that there is either an existing driver that has claimed the interface or (Windows only) the WinUSB driver hasn't attached to the interface in order to enable applications like your browser to claim it. On Windows you can use the Zadig tool to force Windows to change the drivers being used for a USB device.
If the device can be opened using the Web Serial API then that indicates that the operating system has already loaded a serial driver for the device and so it has claimed at least some of the device's interfaces.
Why, if the Web Serial API works to connect to your device, are you trying to connect to it with the WebUSB API instead? Are you now on a different operating system which doesn't provide a USB serial driver compatible with the device?
I'm trying to use a USB Barcode Scanner on Windows 10 in Chrome v73.0.3683.86 via WebUSB.
The scanner is a Honeywell Voyager 1250g.
I can see the device via the device dialog - I can also open it and select a configuration.
However, when I try to claim interface(1) (There are 3 interfaces, but 1 is the bulk transfer) I get the error Failed to claim interface: Operation not supported or unimplemented on this platform in chrome://device-log/.
Is there a way around this, or is this scanner just not usable via WebUSB? Thanks!
Have you tried connecting to this device using WebUSB on other platforms? Windows has a particular additional requirement for applications (like Chrome) to access USB devices which is that the WinUSB.sys driver must be loaded for the interface.
I've written an article explaining the particular requirements on Windows here: https://developers.google.com/web/fundamentals/native-hardware/build-for-webusb/#windows
If you use the Windows Device Manager you can check which drivers are loaded for your device. If there is no driver loaded then you may be able to write a custom INF file as described in that article to instruct Windows to load the driver you want.
The Windows Phone user can select the default location of installing the Apps to either Device or SD Card in the Storage settings.
Suppose my app is in the Windows Store and the user tries to install my app.
Case 1: The user doesn't have any SD Card in his phone. So everything goes to the Device. Perfect! This works for me.
Case 2: The user has SD Card but the location for App installation is set to Device by the user. This also works for me.
Case 3: The user has SD Card and the location for App installation is set to SD Card.This is where the problem exists!
For some reason, I want my App to be installable only on the Device's memory and not on SD Card.
Question: Is there something that I can add in the Package.appxManifest so that the Windows Store notifies the User that My App can only be installed on the Device's memory and not on SD Card. Is it possible to restrict my App installation only to Device's memory?
I have gone through many links but none of them talk on this specific use case.
Thanks for help!
This is now specifically done during the package upload to the store.
App Declarations
Customers can install this app to alternate drives or removable
storage. This box is checked by default, to allow customers to install
your app to removable storage media such as an SD card, or to a
non-system volume drive such as an external drive. If you want to
prevent your app from being installed to alternate drives or removable
storage, uncheck this box. Note that there is no option to restrict
installation so that an app can only be installed to removable storage
media. Note For Windows Phone 8.1, this was previously indicated via
StoreManifest.xml.
In the packaging options there is an option to prevent the installation on an external memory, but I don't remember exactly in which tab is found, nor how it's called.
Hope that helps.
Edit
Found it. You just have to check the "Prevent installation on SD cards" option from the Application tab in the manifest options.
See this tutorial for more informations.
I want to install and discuss with my own usb device on a raspberry pi with windows iot.
For that, I just create an inf file for arm like WinUSB driver on Windows 10 IoT. The device is recognized by the raspberry (seen on the startup list of connected device). Then I want to discuss with the device.
First, I have tried with the "winusb.dll" but I need to use the library "SetupApi" that does not compile for ARM. (I used this solution on windows PC and communicate correctly with the device).
Do you have an idea on how to communicate correctly with an winusb device on windows iot?
Thanks in advance for your answers.
So, I try to migrate to Windows.device.usb, and I don't succeed in connecting to the device. There there an exception when I call the FromIdAsync() function. It's exactly the same issue as : Can't access USB device in Universal App
There are some fantastic samples that can be found here.
https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/CustomUsbDeviceAccess
Download all the samples. Check where it creates watchers based on specific devices (there are two samples in there, you'd need to add your own in) the page that displays USB descriptors checks on the device type -- add in a check so that it returns DeviceType.all to see if it can query the descriptors.
I've managed to get it working on Windows 10 desktop, but have failed to craft an INF file that I can use on my IoT device. Once I get that working, I may return.
when I try to access a page on my IIS Express in a LAN (e.g. 192.168.1.123:3766/Host/MyPage.aspx) from my HTC 8S with Windows Phone 8 I get an error message that says "Unsupported address Internet Explorer Mobile doesn't support this type of address and can't display this page.
Is it possible to get this to work and if so how?
You need to specify the protocol. Try http://192.168.1.123:3766/Host/MyPage.aspx.
You will also need to follow the instructions here to make sure that your IIS Express is serving up on a port which your phone can see.
http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj684580(v=vs.105).aspx
In particular follow this section:
Quick solution with IIS Express
Create a firewall exception to allow HTTP requests through the firewall on the port that IIS Express is using.
Get the IP address of the development computer, if necessary, by running ipconfig.
Find the IIS Express configuration file, applicationhost.config, in the folder %USERPROFILE%\Documents\IISExpress\config. The USERPROFILE environment variable typically has a value of C:\Users\.
Open applicationhost.config with Notepad or another text editor and make the following changes.
a. Find the site element for the web service, WebServiceForTesting.
b. If you don’t see the site element for the web service, you have to deploy the service at least one time to create the element.
c. Within the bindings section of the site element, copy the binding element and paste a copy directly below the existing binding element to create a second binding.
d. In the new binding element, replace localhost with the computer’s IP address.
Save the changes.
Run Visual Studio as administrator and open the Visual Studio solution.
And beware of:
Important Note:
On a corporate domain, the emulator appears as a separate network device that is not joined to the domain. As a result, you may also have to get an exception from your IT department before the emulator can connect to services that are running on the domain-joined development computer.