|
以前、Nokia lumia 930の携帯電話を購入しましたが、ここ数日でNFCという高い機能があり、銀行カードやオールインワンカード、その他の情報を読み取れることを知りました。 銀行カードをスマホに入れると、電話がビープ音を鳴らしましたが、何も表示されませんでした。 百度は突然、Androidのアリペイウォレットだけがこの機能を持っていることに気づき、調査して小さなプログラムを作成しました。 以下に示すように
このプログラムは非常にシンプルで、携帯電話に貼り付けると銀行カードが「銀行カードが届きます」と表示され、出ると「銀行カードが消えました」と表示されます。 実装プロセスはシンプルで、以下の通りです:
空のWindows Phoneプロジェクトを作成し、メインページに3つのクラスメンバーと2つのイベント関数を追加します。 [mw_shl_code=cシャープ、真]Windows::Foundation::EventRegistrationToken m_arrivedToken;
Windows::Foundation::EventRegistrationToken m_departedToken;
Windows::Networking::Proximity::ProximityDevice^ m_proximityDevice;
void DeviceArrived(Windows::Networking::P roximity::P roximityDevice^ device); void DeviceDeparted(Windows::Networking::P roximity::P roximityDevice^ device); [/mw_shl_code]
次に、MainPageのコンストラクタでデフォルトのNFCデバイスを入手し、OnNavigatedToで2つのイベントを登録します。これらは銀行カードが携帯電話に近づき、出ていくイベントに応答するために使われます。イベントがトリガーされた際にDeviceArrivedおよびDeviceDepartedプロセスが呼び出され、プロセスは単に出力ログを実行します。 オーバー
[mw_shl_code=cシャープ、真]メインページ::メインページ()
{ InitializeComponent(); m_proximityDevice = ProximityDevice::GetDefault();
}
void MainPage::OnNavigatedTo(NavigationEventArgs^ e)
{ (空)e; 未使用パラメータ もし(this->m_proximityDevice)
{ m_arrivedToken = m_proximityDevice->DeviceArrived += ref new DeviceArrivedEventHandler(this, &MainPage::D eviceArrived, CallbackContext::Same); m_departedToken = m_proximityDevice->DeviceDeparted += ref new DeviceDepartedEventHandler(this, &MainPage::D eviceDeparted, CallbackContext::Same);
}
}
void MainPage::D eviceArrived(ProximityDevice^ device)
{ ErrorText->Text += 「銀行カードが来る! \r\n";
}
void MainPage::D eviceDeparted(ProximityDevice^ device)
{ ErrorText->Text += 「銀行カードがなくなってる! \r\n"; }[/mw_shl_code]
こうしてプログラムが完成し、次のステップは情報を読むことです。
時間があれば、もう一度勉強し、カードの情報を読み上げてみてください。
|