Professional Documents
Culture Documents
LM QUEN VI CU TRC CA 1 CHNG TRNH WINDOWS PHONE ....... 5 2. XY DNG CHNG TRNH HELLO WORLD U TIN ................................ 12 TO MI MT PROJECT .............................................................................................. 12 XY DNG NG DNG............................................................................................... 14 III. XY DNG NG DNG BN N GIN S DNG BING MAP API ....... 17 1. PHN TCH LOGIC ..................................................................................................... 17 2. THIT K GIAO DIN ................................................................................................ 18 3. NG K API KEY S DNG BN ........................................................... 24 4. XY DNG HM LY V TR HIN TI (GET LOCATION) .............................. 27 5. LY A CH KHI BIT LOCATION (GET ADDRESS) .................................. 29 6. LY LOCATION KHI BIT A CH (GET LOCATION)................................ 33 7. VIEWMODE ................................................................................................................. 36 TNG KT ............................................................................................................................. 37
I.
GII THIU
Chng ta s tm hiu c v tiu chun phn cng ti thiu dnh cho h iu hnh WP, t chng ta s c th nm c nhng gii hn v ni dung v hiu ng khi lp trnh trong WP. Nn tng WP nh mt my tnh Ngy nay thit b cng ngh thng tin thay i vi tc chng mt v cc thit b cm tay nh cellphone cng khng nm ngoi l. Hin nay cc cell phone khng nhng pht trin v phn cng m phn mm cng thay i vi tc chng mt. WP c coi nh mt chic vi tnh thc th v nhng kh nng khng h thua km ca n. Mt thit b WP c con chip x l ti thiu kh mnh, c kh nng lu tr cc b, h tr ha 3D v b nh kh ln vi n v ln ti hng Gigabyte. WP c vit li t nhn h iu hnh mi v hon ton khc vi h iu hnh windows mobile trc. WP vit da trn nhn ch yu t mi trng Silverlight v XNA. C th ni h iu hnh WP l n lc ln ca Microsoft trong vic lm nn mt h iu hnh thc th dnh cho cellphone hot ng da trn ch yu vo mn hnh cm ng. Bn v nn tng phn cng ca WP Trc khi lp trnh vi WP chng ta s phi c ci nhn s lc v phn cng ca n. Tt c thit b chy h iu hnh WP iu phi tha mn cu hnh ti thiu c xut t Microsoft. V vy khi bn cm trn tay mt chic WP bn chc chn rng s tn hng c cc hiu ng cng nh tc x l mc chp nhn c ca WP.
Th nhng bn c th d dng thy trn th trng c cc nh sn xut in thoi cho ra cc sn phm mnh hn xut ca Microsoft rt nhiu nhm lm tha mn cc tn v game, video cn cc hiu ng nh cao nh b vi x l rt mnh, mn hnh cm ng ln hn, b nh nhiu hn. B vi x l
The Central Processing Unit (CPU) l ni mi cng vic iu c gii quyt ti y. H iu hnh WP cn b vi x l vo khong 1GHz. So snh vi CPU tht ra khng ch khc n thun v tc m cn khc rt nhiu v cch thc hot ng ca chng. th nht: CPU trn PC c th c a nhn h tr chy a nhim, cn trn CPU WP thng ch c 1 nhn v a nhim trn WP thng ch h tr mc ti thiu nhm m bo thch hp vi b vi x l i km. Th hai: CPU trn PC c tc x l vt tri vi cellphone. nh i vi iu ta s phi tr gi v nhit v lng pin v phi cn mt b nh RAM ln. V vy khi lp trnh vi WP ta s phi xem xt ti gii hn ca n c th c nhng hng pht trin tt nht.
H iu hnh WP h iu hnh WP cn c gi l Windows CE (Compact Edition), c thit k ring cho thit b di ng, ti u cho pin v tc chip ca thit b. H iu hnh WP da trn nhn ca silverlight, mt nhn ti u cho cc hin th animations mt cch mt m nht vi cc hnh nh vector khng b b mu khi nm trn cc thit b c kch thc mn hnh khc nhau. V vy cc chng trnh chy c trn WP hon ton c th chy c trn PC.
ha WP c thit k hin th tt cc hnh nh c cht lng cao vi mt pixel ln. Trn WP chng ta c th thy cc dng ch c hin th vi mn cao. Th nhng hin th cng nhiu pixel nh ta s phi hao tn b nh ram cng nh hao tn pin hn. WP bit s lm cho mn hnh hin th nh thch hp nht vi mn hnh v pin ca cellphone. V vy bn c th m nhng file nh ln m khng lo v cht lng hin th cng nh s nh hng ti thi lng pin.
a chm
Cc thit b di ng i c c mn hinh cm ng th thng l cm ng in tr da vo lc tc ng ln mn hnh. Cn cc th h cellphone chy WP th thng dng mn hnh cm ng in dung, n hot ng da trn cc electron m trn u ngn tay ca ngi s dng. V vy mn hnh in dung d dng h tr a chm trn mn hnh t em li cho ngi dng tri nghim hon ton mi trn thit b di ng.
GPS ( Global Positioning System) Hu ht cc thit b chy WP u c h thng GPS nhm gip cho ngi dng c th xc nh v tr v tm ng thng qua phn mm h tr nh GoogleMaps hoc BingMaps....C th ni tnh nng ny dng nh khng th thiu trn cc thit b di ng thng minh hin nay.
B gia tc(Accelerometer) b gia tc l mt thit b phn cng gip h iu hnh nhn bit rung,lc hay hng di chuyn ca thit b. T thit b ny xut hin rt nhiu chc nng c yu thch nh lc i bi nhc, chi game ua xe trn iphone...
Camera hu ht cc thit b cellphone hin nay u c camera v WP khng nm ngoi l. Cc camera trn WP c t nht 5Mpx vi nhng bc hnh ln ti hn 5 triu im nh. Khi vit chng trnh thao tc vi camera chng ta c vi im cn quan tm: Chng ta khng th can thip vo camera khi ang quay nu khng c h tr t pha phn cng camera. Tc y bn khng th chn hnh ln camera ang hot ng c. Th 2: chng ta khng th chp mt bc nh m khng c s ng t pha ngi dng.
B Nh V Lu tr:
3
B nh l thnh phn rt quan trng trong bt k cellphone no. B nh c 2 loi b nh mass storage dng lu tr chng trnh v b nh Ram dng gip cc phn mm lu gi trng thi v truy xut nhanh. Trn WP th chng ta c t nht 256MB b nh RAM v t nht 8GB d liu. Vi b nh my nh trn nn WP s ti u li tt c phn mm sao cho phn mm chy mt m nht c th trn phn cng b gii hn nh vy.
Cc kt ni mng c h tr Kt ni internet l thnh phn khng th thiu ca cc in thoi thng minh. H iu hnh WP h tr cho bn cc kt ni internet thng dng nht: Wifi: tt c cc thit b chy WP u h tr kt ni khng dy. N cho bn mt kt ni tc cao nhng tt nht bn nn lm vic gn vi im pht sng wifi c mt kt ni tt nht. 3G: c tc truy cp gn nh Wifi v c ph sng tt hn Wifi nn khc phc c nhc im ca wifi. Bn c th i bt c u min c sng di dng bn s c th truy cp Internet thng qua 3G. GPRS: nu nhng ni qu ho lnh khng c Wifi hoc 3G th bn c th si n GPRS, th nhng tc ca n khng th no snh bng 2 kt ni trn. Ngoi ra WP cn h tr cho chng ta kt ni bluetooth dnh cho vic nghe nhc qua tai nghe bluetooth hoc gi nhng lng file nh cho nhau. Cc thch thc ca WP WP c thit k rt mnh m cho cc thit b di ng th nhng n vn b rng buc bi cc vn v thi lng pin, tc x l v b nh Ram gii hn. V vy ngi lp trnh vin phi chun b tt kin thc v gii hn ca thit b.
1. Mi trng WP WP c Microsoft h tr rt nhiu vi cc phn mm km theo c th giao tip tng tc trn cc h thng khc nhau.
4
Zune Software: Gip WP giao tip vi PC nhm qun l multimedia, trao i d liu vi nhau. Khi bn lp trnh trn Visual Studio bn c th y ng dng ca bn ln thit b thng qua Zune c tch hp trong Visual Studio. Windows Live v Xbox Live: Nu bn s hu WP, bn hon ton c th ng k ti khon Live v tham gia cc tr chi trn Xbox Live ca Microsoft. Bn c th lm vic vi cc ng dng vn phng vi office online c cung cp bi Microsoft thng qua ti khon Live. Bing Maps: Bing Maps cung cp cho bn bit v tr hin ti cng nh bn hu ht cc nc trn th gii. Bn c th s dng c hu ht cc dch v ca Bing Maps nh nh v, tm kim v tr, dn ng, bn 3D... II. LP TRNH TRN WINDOWS PHONE 7
By gi chng ta c th bt u ng dng u tin vi WP. Ban u trong template ca visual studio 2010 by gi c template Silverlight For Windows Phone ca ng dng WP. Khi khi to project xong, ta s thy xut hin hnh nh WP nh sau:
Hnh 1: Khi to project Trn mn hnh design trn ta c th ko cc control t Toolbox bar c thit k giao din mt cch d dng. iu quan trng ta cn lu l khi bn lp trnh cho WP bn c th chy chng trnh ca bn trn WP emulator hoc trn thit b tht thng qua dy cm USB. cu hnh khi chy ng dng bn c th chn nh hnh sau:
Hnh 3: Cu trc project WP Ta s tm hiu cu trc cng nh nhim v ca cc thnh phn trong project nh sau: File App.xaml, App.xaml.cs v MainPage.xaml, MainPage.xaml.cs: Nu l lp trnh vin .NET ta hon ton c th bit ngay rng cc file c ui cs l nhng file code-behind cn nhng file c ui xaml l nhng file Extensible Application Markup Language (XAML) tng tc vi cc file cs tng ng. M file App.xaml.cs ta s cu trc quen thuc nh sau: namespace SilverlightHelloPhone { public partial class App : Application
7
{ public App() { InitializeComponent(); } } } y ta cn ch cc class c t l partial v Microsoft chun b cho n kh nng ku thm mt file cs mi c cc thnh vin ca class App ny. Cu trc file App.xaml nh sau: <Application x:Class="PhoneApp1.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"> .... </Application> File App.xaml thng c s dng lu tr cc resource ca ton b ng dng. Resource ca ng dng thng bao gm gi tr ca cc bin mu, gi tr cc brush hoc cc style v animation. ng c php ca ngn ng XAML trong Silverlight bn phi c element root v sau phi khai bo 4 XML Namespace. Property xmlns l namespace tiu chun rt ph bin trong Silverlight v property xmlns u tin gip cho compiler nh ngha c class khi thc thi. Propery XML th 2 th tham chiu ti nhng element v c tnh khc c trong nhn Silverlight. Trong project WP ta c th gp thng xuyn 2 property tng t nhau l x:name v name. Thc ra x:name c tham chiu t:
8
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml". Cn name property tham chiu t: xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Thc ra khng h c s khc bit nhau 2 property ny cho lm. Nhng khi bn dng vit template silverlight cho visual studio th bn phi bt buc s dng x:name trnh cc li v compile cng nh li hin th. (1) Khi chng trnh bt u chy, t App Class s to ra object PhoneApplicationFrame. PhoneApplicationFrame s l nh mt web browser v s gi class MainPage. MainPage.xaml v MainPage.xaml.cs l thnh phn bt buc trong Silverlight. y l trang ch ca chng trnh tc khi chng trnh c chy thnh cng s n trang ny. Xt qua MainPage.xaml.cs class ta s thy cu trc ca n rt n gin: using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Phone.Controls; namespace PhoneApp1 { public partial class MainPage : PhoneApplicationPage { // Constructor public MainPage() { InitializeComponent(); }
9
} }
Vic kt tha class PhoneApplicationPage mang li cho class MainPage k tha u cc tnh nng ca mt trang ng dng WP. Phn giao din s do file MainPage.xaml quyt nh. M file MainPage.xaml ta s thy cu trc nh sau: <phone:PhoneApplicationPage x:Class="PhoneApp1.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768" FontFamily="{StaticResource PhoneFontFamilyNormal}" FontSize="{StaticResource PhoneFontSizeNormal}" Foreground="{StaticResource PhoneForegroundBrush}" SupportedOrientations="Portrait" Orientation="Portrait" shell:SystemTray.IsVisible="True"> <!--LayoutRoot is the root grid where all page content is placed--> <Grid x:Name="LayoutRoot" Background="Transparent"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <!--TitlePanel contains the name of the application and page title--> <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28"> <TextBlock x:Name="ApplicationTitle" Text="MY APPLICATION" Style="{StaticResource PhoneTextNormalStyle}"/> <TextBlock x:Name="PageTitle" Text="page name" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/> </StackPanel> <!--ContentPanel - place additional content here-->
10
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"></Grid> </Grid> </phone:PhoneApplicationPage> Thot nhn qua ta s nhn thy 4 khai bo xml u ging vi file App.xaml. Cn li c mt s keyworld ta cn nm l namespace d l vit tt cho ch design v mc l vit tt ca markup compatibility(2) v 2 t kha trn l th mnh ca ngn ng XAML. Xt v c bn XAML cng l ngn ng ging nh HTML th nhng XAML li c Microsoft trang b cho nhng kh nng ha tuyt vi vi c php cht ch hn. Ta c th nhn thy on m XAML trn xt cc property FontSize, FontFamily v Fontground thng qua mt StaticResource. Ta s nghin cu k hn v StaticResource trong chng sau nhng qua y bn c th no hnh dung c kh nng qun l resource rt tt ca Silverlight For WP. Phn thit k trang thng qua cc control Grid, StackPanel... cc control ny s c tm hiu k cng hn cc chng sau. Phn cui cng trong chng ny, chng ta s phi nm r rng khi bn build project WP th file thc thi cha tt c m lnh v resource ca chng trnh s c nm trong file c ui l XAP v file XAP c ti u ha lm sao c th chy nhanh nht khi chy. Thc ra file XAP ch tng t nh file ZIP m thi. Ta hon ton c th gii nn n nh mt file ZIP bnh thng. Ta c th tm thy file XAP trong th mc Debug/Bin. Khi bn y ng dng ln thit b tht, ta ch cn deploy file XAP l .
11
TO MI MT PROJECT M chng trnh ln, chn New Project. Chng ta cng c th chn New Project t File menu hoc s dng phm tt : Ctrl+Shift+N. Mt ca s la chn s hin ra nh hnh di y
T Installed Templates, chn Silverlight for Windows Phone v sau chn Windows
12
Phone Application. G tn ca ng dng l : HelloWorldApp. n vo Brower chn khu vc bn mun lu project, sau n OK. Mt ca s s hin th ra nh hnh di. Chn phin bn Windows Phone bn mun xy dng sau n OK.
Chng trnh s to ra mt project nh hnh di. Bn tri l khung thit k ca chng trnh, bn phi l code xaml
13
XY DNG NG DNG Chng ta r chut vo Toolbox. Ko v th Button control ra khu vc thit k ca ng dng
By gi chng ta s th thay i Text ca Button. T khung Properties Window chng ta chn thuc tnh Text v i n thnh "Click Me!". Sau n Enter xc nhn thay i.
14
Tng t, chng ta thm mt Textblock control bn di Button, Xa ni dung text ca Textblock i. Ta c kt qu nh sao
By gi, click p ln Button control. N s m ra file MainPage.xaml.cs vi ni dung nh hnh di. Button click event handler (s kin click button ) s c t ng to ra cho bn.
private void button1_Click(object sender, RoutedEventArgs e) { textBlock1.Text = "Hello World!!!"; //line to be added } Bn cng c th thay i tn ca ng dng, bng cch chn Title v thay i thuc tnh Text thnh HELLO WORLD APP ging nh cch bn lm vi Textblock.
Xong !, by gi chng ta n vo nt start ( trn hnh) hoc n F5 chy . ng dng c to. Windows Phone emulator s c bt ln v ch 1 t ng dng ci t. Sau ng dng s t ng m ra. Th click vo button "Click Me!" bn s thy hin ra dng text bn di
16
III.
phn trn, sau khi thc hnh xy dng ng dng HELLO WORLD by gi chng ta bt u quen vi cch to ra 1 chng trnh trn Windows Phone. phn ny ti s hng dn cc bn to ra mt ng dng bn c bn.
17
18
19
By gi chng ta s ko th Map Control vo, Map control s gip chng ta hin th d liu trn bn . Cc bn ch Map Control toolbox v ko vo mn hnh, sau chnh kch thc cho n.
20
21
Sau khi to ra mt ci map hin th nh trn chng ta s thm cc button, textbox nh sau
22
23
24
Kt qu ca chng ta y
25
26
27
V y l kt qu khi F5 chy
28
29
30
y namespace ca mnh l BingMapGeoCodeService v mnh s s dng n trong project ny : using BINGMapsDemo.BingMapGeoCodeService; By gi chng ta s vit hm FindByLocation() Trc khi get d liu t trn mng v, chng ta cn phi kim tra xem c mng khng
private bool checkNetwork() { if (NetworkInterface.NetworkInterfaceType != NetworkInterfaceType.None) return true;//Nu c mng return false;//Nu khng c mng }
y l hm FindByLocation
private void FindByLocation(double _long, double _lat) { if (checkNetwork()) { // ng k chng ch vi API Key c th s dng cc hm ny ReverseGeocodeRequest reverseGeocodeRequest = new ReverseGeocodeRequest(); reverseGeocodeRequest.Credentials = new Credentials(); reverseGeocodeRequest.Credentials.ApplicationId = "ApJsz76A5DIw8fg7oU2F1nI2wO2p7xssazIh1SdqA_LcZskorBXeV9YEYdcG3GqI";
31
trong hm getgps() chng ta thm vo on code di y, bin address l 1 bin ton cc do lp trnh vin nh ngha, ng thi cng gi hm FindByLocation
locationPushpin.Content = address;
32
34
Th tm 1 a im xem nh
35
7. VIEWMODE
Viewmode th kh n gin, chng ta thm vo s kin click ca button view mode ni dung sau
if (mapdemo.Mode is RoadMode) { mapdemo.Mode = new AerialMode(true); } else { mapdemo.Mode = new RoadMode(); }
36
TNG KT
Xin lu vi cc bn c bi hng dn ny l c mt s vn v x l hiu sut khi ly kt qu cng nh hin th kt qu mnh khng nu ra y, hi vng khi cc bn lp trnh gp phi n s t mnh tm ra c li gii p. Mi thc mc c th gi v a ch EMail : anh.pc.hut@gmail.com
37