How to catch signal strength in windows phone? - windows-phone-8

I want to find current signal strength of GSM network in windows phone and also want to find data network like 3G,2G. I got the operator name using DeviceNetworkInformation.CellularMobileOperator but I am not able to find signal strength. Is there any API to find strength and data network like 3G or 2G?

you cannot do that with the Windows Phone API.

There is currently no information available beyond basic carrier metadata in the SDK.
Beyond the information purposes (users already see the signal strength anyway), you should not adapt your app behavior based on such an indicator.

Related

Specfically, how does an EMV device talk with the card issuer?

When doing an EMV online transaction (ARQC), an EMV device needs to communicate with the issuer (or gateway) to get approval/denial. I am writing POS software and need to support EMV, thus I need to support this interaction. What I can't seem to answer is, is it part of the EMV specification for the EMV device to communicate directly with the issuer, over internet? Or do I need to be looking for some sort of send function in the device's API?
I know this question could be directed at a hardware manufacturer's design, but I have read a few API's for different EMV devices and non of them seem to detail this communication. Most of them have a function to initialize the EMV capabilities (with the transaction amount) and then a callback/event when the transaction is completed. This leads me to believe that all I need to provide is a good internet connection to the device and the magic will happen.
As a followup to that, I see some devices have USB communications (instead of ethernet). These devices (obviously) couldn't talk directly to an outside network. Is it safe to assume these devices are going to do every EMV transaction offline? Or am I missing something?
As far as I have come to understand, EMV covers the finer details of the communication between a card and the reader device, then gives the procedure/standards to be followed when delivering that data online. Thus, once you have performed the local processing of the card, you will use whichever means you can find to deliver that info to an online acquirer (assuming its an online transaction) and that communication must fulfill the EMV (and also PCI) security requirements. So Yes, you will need an Internet connection for online transactions. That part, which will "encode" the data according to financial standards and protocols and send it to a specified acquirer/issuer, will need to be created by the developer (you).
After much research and headaches, I think I have answered my question. And it is..... Level 2 Kernel. This is the piece that I couldn't find anywhere because (i think) the whole EMV thing is so new in America. As Peter posted in his reply, EMV covers the finer details between the card and device, but only gives suggestions on delivering that data. The Kernel is the "vehicle" by which the Cryptogram (created by the card and device talking) is delivered to the card issuer for approval. Because the Kernel is (usually) a piece of software running on a computer (as a network service for example), it can house both IP communication with the pin pad or monitor a USB port.
From there I realized that I had two choices, first develop my own kernel and go through the whole pinpad integration AND EMV certification (ummm no thank you). Or second, find a company that has already done the certification and pay for use of their solution (yes please).
I found a company named CreditCall offering a product named ChipDNA which is an interface to an existing certified Level 2 Kernel. They have a Microsoft and Java integration. They have already integrated with certain keypads and handle the entire EMV online communication (end to end). They offer a lite version of their API for free, which I created a little console prog for. Worked like a champ! Cut a ton of development time off and a big [certification] cost.
....now I've got to get the accountants to "ok" the ChipDNA cost.

How does the CurrentApp.ReportProductFulfillment method work?

I'm testing my Windows Phone 8 app for scenarios where my app goes to the background before it can fulfill a consumable purchase. So, on every app-launch I check if there are any unfulfilled in-app purchases, if there are, I fulfill them using the CurrentApp.ReportProductFulfillment method.
However, while testing I noticed this method works even if the device isn't connected to the Internet. So how and when does the app let the Marketplace know that the purchase has been successful? More importantly, should I only do this only if I have an Internet connection?
This is my code by the way :
var licenses = CurrentApp.LicenseInformation.ProductLicenses;
if (licenses["PRODUCT_ID"].IsConsumable && licenses["PRODUCT_ID"].IsActive) {
// Fulfill consumable purchases
// Let the Marketplace know
CurrentApp.ReportProductFulfillment("PRODUCT_ID");
}
Marketplace communications occur on a background task spawned by the OS on regular intervals. You can observe this traffic if you attach Fiddler to a machine running Windows Phone emulator
The following statements are merely suppositions on my part, so take it with a grain of salt. I would imagine the background Marketplace communication handles a number of tasks. The most common of these would be checking for application updates. However, this would also be an ideal time for the OS to communicate fulfillment of an order. In that vein, Marketplace services likely queue your report request and, if it cannot be communicated immediately, defers it for the background task to handle at a later time, allowing the method to run even when the phone does not have data access. Given the nature of modern cashless transactions, I don't see any reason the Marketplace would require immediate notification of fulfillment, as it has time to complete a transaction once initialize authorization is acquired.
CurrentApp.LicenseInformation.ProductLicenses is cached by the windows phone operating system.

Local network p2p connection with Windows Store Apps

I am building a small cards game for Windows Store using HTML/JS as my programming languages. One of the features that I would like to add is multiplayer capability. My game it's based on a 1 versus 1 player (unlike Hearts where you need 4 players), so an ad-hoc peer-to-peer connection is enough. Also, keep in mind that I am only considering local network multiplayer, without internet support (meaning that "privateNetworkClientServer" capability is required on that app manifest).
So I am imagining, when a player want to start a multiplayer game, the app will periodically broadcast a message to find any candidates. Meanwhile he will also have to listen for those same messages (in case of another player is broadcasting them also). When they find which other we transmit the game state back and forward to perform the required games changes.
My question is, does WinRT provide any functionality out of the box to do something like this? If no, do you have any suggestion for my problem?
Thanks
Look at the documentation for the PeerFinder class. Proximity can use either NFC or by browsing on the same subnet. Note, in the case of WiFi, not all WiFI cards support the browsing model, so some older PCs may not be able to use this solution.
The proximity sample application on msdn should help you with this.

Enable network simulation doesn't work for query IsNetworkAvailable

I'm trying to find out in my app is there network available using Tools/Simulation Dashboard in Visual Studio 2012 for WP 8 app (of course, debug mode is on).
Whatever I do I got for DeviceNetworkInformation.IsNetworkAvailable always true although I set Control setting to No Network. But if I try some activity in app that need network access I can't do that (so it works but withoud detection which is my primary goal).
Are they any thing to do to get False to my query and to do i.e. Message Box that says "No Network available".
Also,
DeviceNetworkInformation.CellularMobileOperator
always return Fake GSM Network" with No Network setting set to. When I change setting I got "Simulation setting were applied succesfully" in VS status bar.
Thanks for the question. I will answer based on the fact that I designed this feature as a Program Manager in Microsoft.
Simulation Dashboard currently only throttles the Network Bandwidth (limited by your current network) and do not simulate "actual" network conditions. So APIs will still return the "actual" network type and/or name but the network speed/quality will be affected as per your choice when the Network Simulation is enabled. In case you want to validate the API calls, you might have to test your app on a Windows Phone device with data connection switched off.

Get data usage WP8

How can I get data usage programmatically on my WP8? I found class DataUsage with properties BytesReceived and BytesSent. But on MSDN I found the following:
Remarks Windows Phone 8
This API is not implemented and will throw an exception if called.
Perhaps, somebody knows how can I get the traffic usage (for cellular/Wifi connection)?
Unfortunately, there's no API to get the overall traffic usage of the phone. Or at least, none available to third-party developers (there's probably some kind of internal API since Data Sense is able to display that information).