子どもの教科書にICタグ
学校の教科書にICタグ、進級してからバタバタで未だ貼れてなかったので漸く。
登校前にランドセルの外からスキャンして忘れ物防止とか、家の中で見つからないときの探索トリガーとか。
学校にもアンテナついてたら色々できるのになー。
#rfid
#ICタグ
#MANICAモバイル
#それにしても字が汚い
AutoMode ⇒ ONこんな感じです。
NotifyMode ⇒ ON
NotifyAddress ⇒ http://aliendump.azurewebsites.net/api/AlienRFIDTagList
NotifyFormat ⇒ XML
NotifyHeader ⇒ OFF
NotifyTrigger ⇒ Change
WifiManager manager = (WifiManager)Application.Context.GetSystemService(WifiService);
if (manager.WifiState == Android.Net.WifiState.Enabled)
{
if (manager.StartScan())
{
IList apList = manager.ScanResults;
...
}
}
これで実装してみるとどうも古いデータを持ってきてたりしている様子。調べてみると、StartScan()は同期でなくて非同期だそうな。SCAN_RESULTS_AVAILABLE_ACTION がブロードキャストされるのでそれを待ってから ScanResults で採れとそういうことだそうです。
private BroadcastReceiver mScanResultsReceiver = new WifiBroadcastReceiver();
private class WifiBroadcastReceiver : BroadcastReceiver
{
public override void OnReceive(Context context, Intent intent)
{
WifiManager manager = (WifiManager)Application.Context.GetSystemService(WifiService);
IList apList = manager.ScanResults;
...
}
}
で、それを利用するためレシーバーを登録
RegisterReceiver(mScanResultsReceiver, new IntentFilter(WifiManager.ScanResultsAvailableAction));
これで動かしてみると、次のようなことがわかりました。