Zgodnie z zapewnieniami Microsoftu, aplikacje, które działały poprawnie na systemie operacyjnym Windows Phone 8.0 powinny również działać bez problemu na systemie Windows Phone 8.1. W większości przypadków tak jest. Ja jednak zachęcam do sprawdzenia Waszych wszystkich aplikacji, czy działają poprawnie z nowszą wersją systemu. Czasami mała zmiana w OS może spowodować, że aplikacja przestanie funkcjonować tak jak byśmy tego chcieli.

W moim przypadku padło na aplikacje SpeedDial / SpeedDial Pro. Samo SDK nie uległo zmianie w tym zakresie i wywoływane funkcje uruchamiały się poprawnie. Zmienił się natomiast sposób ich działania. W przypadku tych aplikacji problematycznym okazał się PhoneCallTask.

W przypadku obydwu wersji systemu wykorzystanie tego elementu jest takie samo:

PhoneCallTask phoneCallTask = new PhoneCallTask();
phoneCallTask.PhoneNumber = "123456789";
phoneCallTask.DisplayName = "Test";
phoneCallTask.Show();

Inny natomiast będzie wynik działania metody Show(). W przypadku Windows Phone 8.0 jej wywołanie spowoduje pojawienie się MessageBox-a z pytaniem czy chcemy zadzwonić na podany numer:

Windows Phone 8 - PhoneCallTask

W przypadku Windows Phone 8.1 wynik już będzie inny. Telefon zamiast pokazać pytanie w postaci MessageBox-a otworzy nową stronę:

Windows Phone 8.1 - PhoneCallTask

Oczywiście pytanie jest takie samo. Inne będą następstwa w aplikacji. W przypadku Windows Phone 8.1 przejście na nową stronę spowoduje wystąpienie zdarzeń związanych ze zmianą strony. Podobnie będzie w przypadku powrotu do naszej aplikacji po udzieleniu odpowiedzi na pytanie. Teraz, jeśli tylko zmodyfikowaliśmy te domyślną obsługę tych zdarzeń i pojawił się tam jakiś niestandardowy kod to może okazać się, że aplikacja przestanie działać. I tak też było w przypadku wspomnianych wcześniej aplikacji. Po wybraniu numeru telefonu nie można było zakończyć działania aplikacji.

Najlepsze jest to, że poprawka zajęła 3 linijki. Gorzej wypada bilans czasowy – ponad 2 godziny. Niestety, aby móc zainstalować aplikację na Windows Phone 8.1 musiałem zainstalować Visual Studio 2013 SP2 RC. Jestem teraz ciekaw, czy późniejsza instalacja pełnej wersji SP2 przebiegnie bez problemów, czy może będę musiał przeinstalować całe środowisko.