ID aplikacji Windows Phone

Jakiś czas temu znalazłem ciekawy trick na uzyskanie ID aplikacji Windows Phone.

Całość sprowadza się do odczytania pliku WMAppManifest.xml:

using System;
using System.Xml.Linq;

namespace PhoneApp.ApplicationId
{
    public static class ApplicationProperties
    {
        public static Guid GetId()
        {
            Guid applicationId = Guid.Empty;

            var productId = XDocument.Load("WMAppManifest.xml").Root.Element("App").Attribute("ProductID");

            if (productId != null && !string.IsNullOrEmpty(productId.Value))
                Guid.TryParse(productId.Value, out applicationId);

            return applicationId;
        }
    }
}

Po czym, wystarczy odpalić metodę GetId aby uzyskać ID aplikacji w dowolnym miejscu kodu:

using System;
using System.Windows;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Tasks;

namespace PhoneApp.ApplicationId
{
    public partial class MainPage : PhoneApplicationPage
    {
        public MainPage()
        {
            InitializeComponent();
        }

        private void ButtonShowId_Click(object sender, RoutedEventArgs e)
        {
            MessageBox.Show(ApplicationProperties.GetId().ToString(), "My id is:", MessageBoxButton.OK);
        }

        private void ButtonShare_Click(object sender, RoutedEventArgs e)
        {
            ShareLinkTask shareLinkTask = new ShareLinkTask();
            shareLinkTask.Title = "Check this app!";
            shareLinkTask.LinkUri = new Uri(string.Format("http://www.windowsphone.com/s?appid={0}", ApplicationProperties.GetId()), UriKind.Absolute);
            shareLinkTask.Show();
        }
    }
}

Przydatny kawałek kodu, który uchroni nas przed hard kodowaniem ID i podwójną publikacją aby uzyskać ten numer a potem aby finalnie opublikować aplikację.


Leave a Reply

Your email address will not be published. Required fields are marked *

four × 3 =

Partnerzy