TextGoダウンロード

2021年3月28日日曜日

Googleの位置情報取得ポリシーに未対応のため、コンパニオンの一部の機能が正常に機能していません。

最近、またコンパニオンのアップデートをしています。
公式アプリの更新に対応したアップデートがきっかけなのですが、テスト使用していると、対応したいことが出てきて、それを行っているところです。その中でも、住所アシスタントの「事前住所検索」と呼んでいる機能のことで、住所テキストから緯度経度を検索し、現在位置からの方位と距離を表示する機能が正常に機能していないことに気が付きました。

昔は正常に動作していましたし、プログラムをどのように調べても原因が不明で、多くの時間を費やして調査をしました。その結果、Googleのポリシー変更が影響していることが判明しました。去年あたりから、端末の位置情報をバックグラウンドで取得する場合、申請を行い許可される必要があることになっています。
バックグラウンドというのは、サービスプログラムのことです。通常、Androidでは、最前面にあるアクティブなアプリしか動いていません。非アクティブになったアプリはスリープ状態になっています。それでもアクティブなアプリと同時並行で処理を行いたい場合の手段として、サービスプログラムがあります。
潜在的には、ユーザーの意識しないバックグラウンドで、サービスプログラムがプライバシーに関わる位置情報を収集する危険性があります。

コンパニオンは、他のアプリの上に重なって表示され、他のアプリと並行して動作することができるオーバーレイという仕組みを使っています。オーバーレイを実現するためにはサービスプログラムを使います。バックグラウンドで動作することが目的ではなく、オーバーレイを実現するための手段としてサービスプログラムを使っています。
このオーバーレイのサービスプログラムは、コンパニオンを起動した直後のメイン画面にある「配達支援サービス」スイッチがオンにされてはじめて生成され、また、オフにされてコンパニオンのメイン画面が終了すると、同時に終了します。
しかし、この仕組みが結果として、サービスプログラムが位置情報を取得するというGoogleのポリシーの事項に該当してしまいますので、どのようにしても位置情報の取得ができなくなりました。

解決できる方法は、審査で許可をとるということになりますので、現在、審査の申請を出しています。結果が出るのは最長3週間、さらにGoogle社内で勤務時間の調整が実施されていて、審査に通常よりも長く時間がかかっています。その後、審査結果が出たとしても、却下された場合、それ以上の時間がかかったり、最悪、解決不能ということになる可能性もあります。

現状、事前住所検索で計算した現在位置からの方位と距離は、最後にコンパニオンのメイン画面がアクティブだった時の値となります。メイン画面を再度、表示してアクティブにすれば、再び位置情報の取得が可能となり、一定時間おき(10秒おき)に方位と距離の再計算が走るので、それで、正しい表示に更新できます。
できますが、時間がかかり面倒です。

本来のアプリの機能向上ではなく、Googleのポリシー対応という非生産的なことに大量の時間を費やしていて、なんとも難儀な気分です。

0 件のコメント:

コメントを投稿

ToDo

有給休暇を管理できるアプリをダウンロード