本サイトからスピンオフした姉妹サイトです。Xamarinを複数回にわたって紹介していく。今回は、GPSの機能を使える「Geolocator」プラグインを説明する。SystemにPCLから簡単にアクセスするPCLStorageを紹介した。今回は使用する機会が多いであろう、GPSを紹介する。ネイティブでGPS機能を使用するにはスマホらしいハードウェア固有のセンサー機能の一つであるGPSも、PCLから使用できるとうれしい機能だ。簡単にXamarinネイティブでのGPSの使い方をおさらいする。Xamarin.Formsからプラットフォーム固有の機能を利用するには?(DependencyService利用)」の各プラットフォームの実装部分を参照してほしい。iOSではCLLocationManagerクラスをインスタンス化してLocationsUpdatedのイベントハンドラー内に処理を記述すればよいだろう。Providerとして「GPSを使用するGpsProvider」、「Wi-Fi、3G/4G回線を使用するNetworkProvider」から指定しなければいけない点に注意してほしい(上記のTips記事では、GpsProviderを指定している)。Xamarin(英語)を参照してほしい。簡単なサンプルコードはGitHubにアップした。パッケージの管理]をクリックする。[参照]タブで「Xam.Plugin.Geolocator」を検索し、全てのプロジェクトに対してGeolocatorを[インストール]する。次のコードで位置情報の取得ができる。非常に簡単なことがお分かりいただけるだろう。false);というシグネチャで定義されており、タイムアウト、キャンセルトークンなど基本的な機能を備えている。取得時間(DateTimeOffset型)などのプロパティがある。その他のAPIとしてバッググラウンドでの処理を管理するAllowsBackgroundUpdates、位置情報のセンサーがデバイスに存在するかを取得するIsGeolocationAvailable、位置情報のセンサーがオンになっているかを取得するIsGeolocationEnabledなどのプロパティがある。PluginのReadme(英語)を参照してほしい。8以降で位置情報を取得するにはInfo.plistファイルに、NSLocationAlwaysUsageDescriptionNSLocationWhenInUseUsageDescriptionの定義を追加する必要がある。Studioの場合は、Info.plistをダブルクリックして、(分かりづらいが)図1の1の[ソース]タブを選択し、2の[+]ボタンをクリックし、ドロップダウンから上記2つのKeyを追加して、[String]欄にダイアログに表示されるメッセージを入力しておけばよい。[ソース]タブでKeyを追加1と2については本文中に記載している。エディター]をクリックしてファイルを開き(図2)、リスト2の要素を<dict>の子要素の最後に追加すればよい。[プログラムから開く]ダイアログXML<key>NSLocationAlwaysUsageDescription</key><string>位置情報を使用します。</string><key>NSLocationWhenInUseUsageDescription</key><string>位置情報を使用します。Pluginが自動で処理してくれるのでInfo.plist以外の修正は必要ない。AndroidAndroidで位置情報を取得するには、適切なパーミッション設定が必要になる。Studioの場合)を開き、以下の[ACCESS_COARSE_LOCATION]と[ACCESS_FINE_LOCATION]にチェックを入れるのが楽だろう。Marshmallow以降は[実行時パーミッションモデル]が採用され、Permissionが必要な機能を実行したときに、以下のダイアログを表示し、ユーザーに許可を得る必要がある。Marshmallow(API23)にしておくと、自動的に表示してくれる。Japanを参照してほしい。Manifest」を参照してほしい。Studioをインストールしておく必要がある)。これら全てのプラットフォームでも、Package.appxmanifestファイルを開き、[機能]タブで必要な機能の項目をチェックする必要がある(図5)。PhoneとWindowsストアでは[近接通信]にチェックを入れておこう。チェックが入っていると、Geolocatorの機能を呼び出した際に以下のような確認ダイアログが表示されるようになる。Phoneなどで簡単にGPSの機能を使用することができる。位置情報を利用するアプリを作りたい方はぜひ使ってみてほしい。Group(JXUG)コミュニティが出展しているので、ブースに来ていただけると幸いだ。Xamarinのエキスパートを揃えて開発者の皆さまをお待ちしている。※以下では、本稿の前後を合わせて5回分(第61回~第65回)のみ表示しています。INDEX]を参照してください。Playerの使い方を紹介する。Xamarinを複数回にわたって紹介していく。Storage」プラグインを説明する。Xamarinを複数回にわたって紹介していく。今回は、GPSの機能を使える「Geolocator」プラグインを説明する。Plugin」プラグインを紹介。今回は、Accelerometer(加速度)センサー、Gyroscope(ジャイロスコープ)センサーの機能を使う方法を説明する。Plugin」プラグインを紹介。今回は、Magnetometer(磁気)センサー、Compass(コンパス)の機能を使う方法を説明する。機械学習エンジニアを目指す人~初中級者のための技術情報サイトです。「機械学習&AI」「クラウド&ビッグデータ」「IoTデバイス」のネット記事情報を共有中。開発者のためのSlackチーム、作りました:「機械学習&AI」「クラウド&ビッグデータ」「IoTデバイス」のネット記事情報を共有中。2020最適なビューへの切り替えを推奨します:スマートフォン用表示に。