私のアプリでは、アプリがアクティブになるたびにユーザーの場所を更新しています。更新された場所を受信したら、またはapplicationWillResignActive:
で、CLLocationManager
を停止します。 Info.plist
には、適切な説明が記載されたNSLocationWhenInUseUsageDescription
があります。
アプリがアクティブ化されてすぐに背景に移動すると、「%MyApp%は現在地を使用しています」という青いバナーが1秒以内に表示されます。このバナーは、applicationWillResignActive:
が呼び出されるとすぐに非表示になります。
Googleマップでも同じ問題に気づきましたが、Apple Mapsではありません。
このバナーを完全に取り除く方法はありますか? iOSを幸せにするために他にすべきことはありますか?ユーザーを驚かせて、場所を必要とするクールな機能をユーザーが使用できないようにしたくありません。
Info.plistでlocationをBackground modeとして設定している可能性があります。これを削除すると、青いバーは表示されなくなります。
または、requestAlwaysAuthorization
でrequestWhenInUseAuthorization
の代わりにCLLocationManager
を使用できます(そしてinfo.plistファイルに関連するNSLocationAlwaysUsageDescription
を指定します)。どちらかが表示されます。
私の場合、アプリがバックグラウンドで場所を使用している場合があります。その場合は、青いバーを表示したいと思います。しかし、バックグラウンドで場所を指定せずにアプリを終了するときに表示されたくありません。私の知る限り、それを達成することは不可能です(私はそれについて尋ねました ここ )。
[〜#〜] edit [〜#〜]:iOS-9以降では、青いバーが次の場合にのみ表示されるようにすることができます。ユーザーは実際にアプリがバックグラウンドで場所を使用することを望んでいます。 この回答 を参照してください。