考慮事項と制限

LocationService API を使用する機能を開発するときは、次の点に留意してください。

LocationService は、位置情報の計算自体は実装しません。代わりに、基盤となるプラットフォーム (Android または iOS) とハードウェア (スマートフォンやその他のモバイルデバイス) の特定の位置情報機能を使用可能にします。LocationService によって提供される機能はどちらのプラットフォームでも同じですが、プラットフォーム固有の動作やわずかな違いによる影響を受けます。

  • LocationService では、モバイルデバイスの位置情報検出ハードウェアを使用する必要があります。ユーザはアプリケーションにデバイスの位置情報へのアクセスを許可する必要があります。実際のユーザエクスペリエンスは、プラットフォームに左右されます。要求は、初回使用時に自動的に行われ、デバイス自体で管理されますが、アプリケーションのユーザエクスペリエンスを設計するときに計画しておく必要があります。

  • Android 11 以降では、アプリケーションがデバイスにインストールされている間、ユーザが連絡先アプリケーションへのアクセス権限の [拒否] を複数回タップすると、システム権限ダイアログが再度表示されることはありません。[拒否] の複数回タップにより、[次回からは確認しない] オプションが暗黙的に選択されます。

    以前のバージョンの Android では、ユーザが以前に [次回からは確認しない] を選択していない場合、アプリケーションで権限が要求されるたびにシステム権限ダイアログが表示されていました。Android 11 でのこの変更により、ユーザが拒否することを選択した権限の繰り返しの要求が回避されます。

    ユーザが連絡先アプリケーションへのアクセス権限を拒否しており、アクセスを許可するための権限を変更する必要がある場合は、デバイスの設定で変更できます。

  • 位置情報の追跡は、基盤となるプラットフォーム (Android または iOS) で適用される重要なプライバシー、処理、および電力使用の制限の影響を受けます。「LocationService API」リファレンスドキュメントに記載されている重要な詳細を参照してください。

  • 位置情報を検出する精度、現在の位置情報を測定する速度、および位置情報追跡がバッテリの寿命に与える影響は、多くの要素の影響を受けます。

  • モバイルデバイスが備えている位置情報検出の特性はさまざまです。

  • モバイルデバイスが位置情報を測定できない場合は、LocationService も位置情報を測定できません。位置情報測定の精度は、デバイスの測位ハードウェアの特性、高層ビルや密集したビル、屋内での使用、その他外部の要因によって低下する場合があります。

  • 位置情報追跡の精度を高くすると、使用電力が大幅に増加するため、モバイルデバイスのバッテリ消費速度に影響が及ぶことがあります。

LocationService で正確な位置情報が得られない場合は、次のことを試してください。

  • 最初に、デバイスがその位置情報を測定できることを確認します。標準の地図アプリケーションが正確な位置情報を取得できない場合は、LocationService も正確な位置情報を取得できません。
  • 次に、コンポーネントが実行されているモバイルアプリケーションに対して、位置情報へのアクセスが許可されていることを確認します。
  • 最後に、コード内の LocationService の設定を再確認します。特に、コンポーネントの機能に対して精度レベルが必要に応じて設定されていることを確認します。

LocationService は、モバイルデバイスの GPS、Wi-Fi、携帯電話、その他の位置情報検出ハードウェアなどの測位ハードウェアにアクセスする必要があります。開発中に位置情報サービスをテストするには、可能な限り、実際の物理デバイスを使用してください。

  • Android エミュレータと iOS シミュレータはそれぞれ、シミュレートされた位置情報の詳細を提供するように設定できます。
  • どちらの仮想デバイスも、実世界、特に位置情報検出が難しい環境では、位置情報検出を正確にシミュレートできません。

もちろん、デスクトップまたはラップトップの開発環境でコンポーネントのユーザエクスペリエンスを開発することはできます。ただし、Lightning アプリケーションをリリースする物理デバイスで位置情報ベースの機能を必ずテストしてください。

Lightning アプリケーションで LocationService を使用するときは、次の考慮事項に注意してください。

  • LocationService は、モバイルオペレーティングシステムとデバイスの機能上に構築されています。そのため、LocationService の位置情報機能は Android または iOS の機能を使用しており、Salesforce による管理の範囲外で変更される可能性があります。モバイルオペレーティングシステム機能が変更された場合、LocationService の動作が通知なく変更されることがあります。

  • LocationService は、地図データを提供しません。地図上に現在の位置情報を表示するには、地図タイルグラフィックを取得するなどの特別な機能を追加する必要があります。

  • LocationService は、デバイスの現在の位置情報のみを検出します。現在の位置情報が変化したときに更新情報を受信できますが、更新情報で得られるのは、新しい位置情報のみです。必要な場合は、JavaScript で独自に距離、近接性、またはジオフェンスの計算を実行してください。

この作業は可能なことで、それほど難しくありませんが、ジオフェンス機能を手動で実装すると、その機能を使用するデバイスのバッテリ消費量が著しく増える場合があります。

:::