一起學Windows Phone7開發(十五. Device)

來源:互聯網
上載者:User

Accelerometer

Accelerometer API用來擷取重力加速感應器的資料,從而用來開發遊戲等程式。

if (am != null)
    am.Stop();
am = new Accelerometer();
am.ReadingChanged += new EventHandler<AccelerometerReadingEventArgs>(am_ReadingChanged);// 監控重力加速資料。
try//因為啟動時,如果出錯會拋出異常,所以要用try塊來處理。
{
     am.Start();//開始擷取資料
}
catch(AccelerometerFailedException e)
{
}
  am.Stop();//停止擷取資料。
void am_ReadingChanged(object sender, AccelerometerReadingEventArgs e)
{
      //擷取數。
}

Location Service

定位API,提供了GPS、WIFI、LBS等多種方式擷取定位元據的方式。並且可以 同時使用一種或多種方種方式來擷取定位元據。

watcher = new GeoCoordinateWatcher (GeoPositionAccuracy.Default);
    watcher.MovementThreshold = 35;// 相對於最後一個 PositionChanged 事件中的座標必須移動的距離(以米為單位),移動該距離之 後位置提供者將引發另一個 PositionChanged 事件。
    watcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>> (watcher_PositionChanged);//監控定位元據變化
watcher.StatusChanged += new EventHandler<GeoPositionStatusChangedEventArgs> (watcher_StatusChanged);//監控服務狀態變化

watcher.Start();//啟動定位服務來擷取資料。但這時不一定服務可用,或者 等待啟動時間過久,這時就可以調用帶逾時的啟動方法,如果逾時,就停止啟動 。
watcher.TryStart(true, TimeSpan.FromMilliseconds(5000));
  if (watcher.Status == GeoPositionStatus.Ready)
       this.PageTitle.Text = "service start";
  else
       this.PageTitle.Text = "service not start";
watcher.Stop();//停止服務。

  void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
  {
//可以得到的定位元據
e.Position.Location.Altitude.ToString("0.000")
e.Position.Location.Latitude.ToString("0.000")
        e.Position.Location.Longitude.ToString("0.000")
        e.Position.Location.Speed.ToString("0.000");
   }
void watcher_StatusChanged(object sender, GeoPositionStatusChangedEventArgs e)
{
       e.Status.ToString();//擷取服務狀態
}

因為是在模擬器上,以上這兩個介面其實都是停用,但是如果要開發程式 過程中,一定要用這些資料又怎麼辦呢?其實WP7上又提供了另外的方法可以虛擬 這些裝置來接收類比資料。這樣就可以在開發遊戲的時候用這樣的方法來測試自 已的遊戲了。

FM Radio

WP7中提供了收音機的API,由此可以看出來,未來真機裡的是有收音機的。這 個收音機的API是singleton模式的,也就是說一個應用只能有一個收音機執行個體。 不過目能夠收聽到的地區只有三個:Europe、Japan、United States。

FMRadio radio = FMRadio.Instance;
radio.CurrentRegion = RadioRegion.Europe;
radio.Frequency = 100.5;
radio.PowerMode = RadioPowerMode.On;

Vibrate Controller

震動控制器用來啟動和停止WP7上的震動器。

VibrateController vc = VibrateController.Default;
vc.Start(TimeSpan.FromMilliseconds(100));
vc.Stop();

在WP7有提供的裝置介面看來還是挺多的,但是卻一直沒發現藍芽、WIFI等的 介面,不知道是WP7上沒有這些裝置,或者是不提供這些介面?還是因為是beta版 的sdk沒有加進來呢?

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.