2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【初心者向け】Azure Spatial Anchorsを共有するAndroid アプリを作成する

Posted at

はじめに

Azure Spatial Anchorsのチュートリアルを行うと、時間が経過しても他デバイスとSpatial Anchorsのデータを共有できるアプリを作成できます。しかし、この記事だけで進めていこうとするとつまる部分も出てきました。
そこで、この記事では実際に行った際の難しかった点を中心に、チュートリアルの手順を解説していきます。

開発環境

  • Visual Studio 2019以降とASP.NETおよび Web の開発ワークロードがインストールされている Windows コンピューター
  • .NET Core 3.1 SDK
  • Android Studio 4.1
  • Git for Windows

Azure Spatial Anchorsを作成する

Azure ポータルでSpatial Anchorsを作成します。
リソースの作成から、Spatial Anchorsを選択し、作成ボタンを押します。Spatial Anchorsアカウントのウィンドウに移動します。
リソース名など設定項目は特に指定はありません。ただし、ここで作成したらもう使わない、と決めているなら削除しやすいようにリソースグループは新規作成すると便利です。
新規を選択するとリソースが作成されます。少し待つと、デプロイ完了の表示が出てきます。これで完成です!

この後使用するのでリソースに移動ボタンをクリックし、概要アカウントIDアカウントドメイン設定キーにあるプライマリーキーの値をコピーしてそれぞれメモ帳などに残しておいてください。

サンプルプロジェクトのダウンロード

Git for Windowsを使って、以下のコマンドを実行します。実行できるとサンプルフォルダが複製されます。(Git for Windowsの初心者だったので、使い方に手間取りました……初心者の方はこのサイトを参考にインストール、初期設定してみてください。)

git clone https://github.com/Azure/azure-spatial-anchors-samples.git
cd ./azure-spatial-anchors-samples

次にAndroid Studioを開きます。リボンにあるFileから、Openを選択し、複製したサンプルフォルダのAndroid/Javaプロジェクトを開きます。その中から、Android/Java/app/src/main/java/com/microsoft/sampleandroid/AzureSpatialAnchorsManager.javaファイルを開きます。

ここで先ほどコピーした値を、ファイルに書き換えていきます。

SpatialAnchorsAccountKey フィールドはプライマリーキーに、SpatialAnchorsAccountId フィールドはアカウントID
SpatialAnchorsAccountDomain フィールドはアカウントドメイン
それぞれset meを置き換えます。

データベースの作成

Azure Cosmos DBを作成します。
こちらも設定項目に指定はありません。ただしなるべく安く済ませるために、geo 冗長性マルチリージョン書き込みオプションを 無効にしてください。
確認と作成をクリックして作成します。作成されてからリソースに移動し、接続文字列の値をコピーします。

サンプルフォルダ内のSharingService\Startup.csをVisual Studioを開きます。ファイルの先頭にある♯define INMEMORY_DEMO をコメントアウトします。
同様に、SharingService\appsettings.jsonを開きます。StorageConnectionStringプロパティの値を、コピーした接続文字列に変更します。

ファイルを全て保存できたらOKです。

アンカー共有サービスのデプロイ

サンプルフォルダ内にある、Sharing\SharingServiceSampleのプロジェクトSharingService.csprojをVisual Studioで開きます。
ソリューションエクスプローラー内にSharingServiceSampleプロジェクトが出ているので、右クリックで発行を選択します。App Service、発行の順に選択し、App Service の作成ウィンドウを開きます。
開けたらAzureにログインし、App Serviceプランを作成していきます。余計な料金がかからないように、サイズをFreeにすることをお忘れなく!

次に、Webアプリを作成して発行します。アプリ名を決定して、作成をクリックして作成していきます。リソースの作成が終わったら公開設定が出てくるので、発行をクリックするとアプリがブラウザで開けます。

https://<<アプリ名>>.azurewebsites.netとなっているURLはコピーしておいてください。

サンプルアプリのデプロイ

Android Studioでサンプル フォルダーから、Android/Java/app/src/main/java/com/microsoft/sampleandroid/SharedActivity.javaファイルを開きます。
SharedActivity.java ファイルのSharingAnchorsServiceUrlの値を、先ほどコピーしたURLにします。この時、URL をhttps://<<アプリ名>>.azurewebsites.net/api/anchorsのように、末尾にapi/anchorsを追記して変更します。

最後に、アプリをデバイスにデプロイします。Android Studioでアプリをデプロイするのが初めての場合は、AVD Managerからデバイスに合わせたAVD(アンドロイド仮想デバイス)を作成します。これを行わないと、アプリをデバイスで動かせないです。

Android Studioの上部に「app」と「自分のデバイス」が表示されていたら準備完了です。実行ボタン(再生ボタンのようなもの)をクリックすると、デバイスにビルドされます。

デバイスに表示される4つのボタンから、Sharedを選択してからCreateを選択すると、アンカーの作成を行います。作成したアンカーを呼び出すのはLocateです。

また、アンカーを保存・呼び出すのにはデバイスのインターネット接続が必須です。上手く保存できない時は接続状況も確認してみてください。

まとめ

これでアンカーを共有できるようになりました。
余談ですが、共有したいアンカーを選択するとそこに黄色の球体が出てくるのですが、保存完了すると緑色に変化します。ですが、保存されるのは黄色の球体です。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?