Xamarin.iOS で Microsoft Band からセンサーデータを取得したい(失敗)
ついに Microsoft Band を手に入れました!
画面表示は簡素な分、センサー類が充実している印象でバッテリーの持ちもよさそうです
手に入れたからには実装されているセンサーデータを利用してみたい!
Microsoft Band の SDK やサンプルコードは下記のページにありました
最初 WIndows Phone で試そうかと思ったら、エミュレーターからは Band とペアリングできず・・・ということで実機を持っている iPhone で試してみます
Xamarin.iOS 用の Microsoft Band サンプルは下記にありました
これを Clone して Microsoft-Band-SDK-Bindings/Demos/Microsoft.Band.Sample/Microsoft.Band.iOS.Sample.sln を開いてみました
読み込めない?!
エラーメッセージを見ると
D:\02_Users\Documents\GitHub\Microsoft-Band-SDK-Bindings\Microsoft.Band\Microsoft.Band.iOS\Microsoft.Band.iOS.csproj : error : プロジェクト ファイル 'D:\02_Users\Documents\GitHub\Microsoft-Band-SDK-Bindings\Microsoft.Band\Microsoft.Band.iOS\Microsoft.Band.iOS.csproj' を開けません。 プロジェクトのサブタイプがありません。 サブタイプ '{8FFB629D-F513-41CE-95D2-7ECE97B6EEEC}' はこのインストールでサポートされていません。
・・・こっこれは Xamarin Studio 限定だぴょん♪ の予感
Microsoft.Band.iOS.csproj を直接開いてみると
<?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <ProjectTypeGuids>{8FFB629D-F513-41CE-95D2-7ECE97B6EEEC};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <ProjectGuid>{A5D3F484-DFD7-4C75-9FF6-ACF3BDE02B49}</ProjectGuid> <OutputType>Library</OutputType> <RootNamespace>Microsoft.Band</RootNamespace> <IPhoneResourcePrefix>Resources</IPhoneResourcePrefix> <AssemblyName>Microsoft.Band.iOS</AssemblyName> </PropertyGroup> ~ 中略 ~ </Project>
<ProjectTypeGuids>
がだめそうなので、Visual Studio で Xamarin.iOS の ClassLibrary を作ったときに生成される値で下記のように変更してみました
<?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <ProjectTypeGuids>{FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <ProjectGuid>{A5D3F484-DFD7-4C75-9FF6-ACF3BDE02B49}</ProjectGuid> <OutputType>Library</OutputType> <RootNamespace>Microsoft.Band</RootNamespace> <IPhoneResourcePrefix>Resources</IPhoneResourcePrefix> <AssemblyName>Microsoft.Band.iOS</AssemblyName> </PropertyGroup> ~ 中略 ~ </Project>
再読み込みしたら今度は別のエラー!
D:\02_Users\Documents\GitHub\Microsoft-Band-SDK-Bindings\Microsoft.Band\Microsoft.Band.iOS\Microsoft.Band.iOS.csproj : error : 要素 <Target> の属性 "DependsOnTarget" は認識されていません。 C:\Program Files (x86)\MSBuild\Xamarin\iOS\Xamarin.iOS.ObjCBinding.CSharp.targets
Binding 失敗・・・少し調べてみたらこんな情報がありました
Bug 27309 – The attribute "DependsOnTarget" in element <Target> is unrecognized
Brendan Zagaeski 2015-04-09 11:16:31 EDT
Support for iOS bindings projects in Visual Studio is a new feature starting in XamarinVS 3.11 (currently on the Alpha channel).This bug was originally filed against XamarinVS 4.0 (C6), but that version has not been released yet, so I suspect the actual version might have been one of the XamarinVS 3.9 versions.
どうやら Xamarin for Visual Studio の不具合らしい
・・・開発中の 4.0 での報告があがってるようなのでここで修正されるかもしれませんが、現時点の最新版が 3.9.547 なので直ってるわけがなく
ということは現時点では Windows で Xamarin.iOS から Microsoft Band に接続するアプリを作れないってことですかね;