I have an application for Windows Phone 7. I have created visual studio 2012 in windows 8 desktop. I am trying to use the application in Windows Phone 8 device also with some changes involved. How can I programmatically detect whether the device is Windows Phone 7 or Windows Phone 8?
Just as you would on any other platform with C#: Environment.OSVersion
You can use this toolkit to check the version of the phone:
http://mangopollo.codeplex.com/
bool IsWP8() : Returns if the phone running the application is a
Windows Phone 8
EDIT: If you don't want to use the whole toolkit here is how it checks it:
public static bool IsWP8 { get { return Environment.OSVersion.Version >= TargetedVersion; } }
private static Version TargetedVersion = new Version(8, 0);
Creds to original author.
You shouldn't need to.
Either it is a Windows Phone 7 app and will work on both Windows Phone 7 and Windows Phone 8 devices or it is a Windows Phone 8 application.
A Windows Phone 7 app running on Windows Phone 8 shouldn't be able to do anything that a Windows Phone 7 device shouldn't be able to do.
This article has some good strategies as well.
http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202996(v=vs.105).aspx
It is not just about run-time either, for example, your code may function one way on wp7 and another on wp8 depending on availability of an API. In this case a #define may the best way to go, because you really don't care what kind of device you are running on, but what SDK you were built against.
Related
I'm a newbie to Windows Phone application development.
My project requires disabling the screen capture feature provided by default in Windows Phone 8.
Target Platform - Windows 8
After a long search, found a property "IsScreenCaptureEnabled" in the PhoneApplicationPage class, which can be used to enable/disable the screen capture in windows phones.
Unfortunately, the property is available only from Windows 8.1 and available from Windows Phone 8 Update 3 (GDR3)
For reference,
http://code.msdn.microsoft.com/windowsapps/Disable-screen-capture-00efe630
http://code.msdn.microsoft.com/windowsapps/Disable-screen-capture-00efe630/sourcecode?fileId=86655&pathId=2647585
It is also supported for GRD2.
See this link.Hope that helps.
In Windows Phone 8 Silverlight I use
Environment.OSVersion.ToString()
to get Windows Phone version and
DeviceStatus.DeviceManufacturer+" "+DeviceStatus.DeviceName
to get device name.
These APIs no longer work with Windows Phone 8.1 XAML. I have found
Windows.Security.ExchangeActiveSyncProvisioning.EasClientDeviceInformation()
this seems to return the manufacturer and device name but OS is returned as just "Windows Phone".
Is there a way to get the exact Windows phone version?
This is currently not possible In Windows Runtime 8.1 (Phone and Windows). It does look like it might be planned thanks to Morten Nielsen and Pete Brown
EDIT: This is now possible in Windows 10. See this SO answer as well as this article for more useful features.
For 8.1, you can use this project on Github https://github.com/Microsoft/phone-info that includes an example application for retrieving both static and dynamic properties of a Windows Phone device.
For Windows 10, the APIs that were used to gather these data on (8 and 8.1) have changed. I have found one blog post https://www.suchan.cz/2015/08/uwp-quick-tip-getting-device-os-and-app-info/ for someone who has created a helper class that retrieves the following properties from a Windows 10 UWP app
current OS family - phone/desktop/...
current OS build number - 10.0.10240.16413
current OS architecture - x86/x64/ARM
current App Display Name
current App Version - 3.0.2.0
current Device manufacturer - Nokia
current Device model - Lumia 1520
In his post he shows how to get basic data about current device, operating system and application.
give it a try maybe it helps
In Windows Phone 8.1:
Windows.Security.ExchangeActiveSyncProvisioning.EasClientDeviceInformation().FriendlyName
It worked for me!
I'm writing a Universal App for Windows 8.1 / Windows Phone 8.1 that at some point displays a list of phone numbers. What I would like to do is allow the user to press one of these numbers and have the device call (or ask permission to call) that number if running on Windows Phone 8.1. I know this was previously possible in Windows Phone 8 by doing the following:
using Microsoft.Phone.Tasks;
PhoneCallTask phoneCallTask = new PhoneCallTask();
phoneCallTask.PhoneNumber = "2065550123";
phoneCallTask.DisplayName = "Gage";
phoneCallTask.Show();
NOTE: This code is wrapped in #if WINDOWS_PHONE_APP
However, when trying to import Microsoft.Phone.Tasks, Visual Studio is unable to find the reference. I know that "ID_CAP_PHONEDIALER" had to be enabled in WMAppManifest.xml in Windows Phone 8, but this doesn't seem to be possible with the universal app model. I've been searching around for a solution but can't find a recent one that includes Windows Phone 8.1 (not Silverlight).
Is there any way to make a phone call from within a universal app? Or is it simply not possible at the moment?
In Windows Phone 8.1, We can make phone call by "Windows.ApplicationModel.Calls.PhoneCallManager", just like this:
Windows.ApplicationModel
.Calls.PhoneCallManager
.ShowPhoneCallUI("phone number", "display name");
I am trying to access images on a Nokia Lumia 610 from a Windows 8 C# application. As it has been pointed out in other posts, such an access has only been possible via Zune and Window Phones would not even be directly visible in Windows 8.
However, using the Windows 8 RTM version I now noticed that the Lumia 610 becomes visible as a device. Still StorageDevice.FromId() raises an exception.
So my question: does the previously valid information ("access to folders on Windows Phones is only possible via Zune") still hold? If not, how can I create a StorageFolder object for a Windows Phone in a Metro/C# application?
Thanks!
I don't think you'd be able to use any WP7 device as a StorageDevice. If I recall correctly, Windows Phone 7 uses IsolatedStorage for storing any and all content, and as such you can't access the files on a Windows Phone through Windows Explorer without rooting/jailbreaking your Windows Phone. And even then, you wouldn't be able to access it through a Windows 8 App AND pass certification at the same time.
I'm trying to store small settings related data, like I would with NSUserDefaults on iOS.
What is the equivilant with Windows Phone 7?
Not sure what exacly is NSUserDefaults, but for Windows Phone 7 you can use ApplicationSettings. Basically, a dictionary that works well for a small set of settings.