[解決済み] 位置情報サービスが有効かどうか確認する
2022-12-05 22:38:17
質問
CoreLocationについて調べています。最近、他の場所で取り上げられている問題に遭遇しましたが、Objective C で、iOS 8 のためのものでした。
これを聞くのはちょっとばかばかしいのですが、iOS 9 で swift を使って位置サービスが有効になっているかどうかを確認する方法はありますか?
iOS 7 (そしてたぶん 8?) では
locationServicesEnabled()
を使用することができましたが、iOS 9 用にコンパイルする際には機能しないようです。
では、どのようにこれを達成すればよいのでしょうか?
ありがとうございます。
どのように解決するのですか?
を追加します。
CLLocationManagerDelegate
をクラス継承に追加すると、このようなチェックができるようになります。
CoreLocationフレームワークのインポート
import CoreLocation
Swift 1.x - 2.x のバージョンです。
if CLLocationManager.locationServicesEnabled() {
switch CLLocationManager.authorizationStatus() {
case .NotDetermined, .Restricted, .Denied:
print("No access")
case .AuthorizedAlways, .AuthorizedWhenInUse:
print("Access")
}
} else {
print("Location services are not enabled")
}
Swift 4.xのバージョンです。
if CLLocationManager.locationServicesEnabled() {
switch CLLocationManager.authorizationStatus() {
case .notDetermined, .restricted, .denied:
print("No access")
case .authorizedAlways, .authorizedWhenInUse:
print("Access")
}
} else {
print("Location services are not enabled")
}
Swift 5.1バージョン
if CLLocationManager.locationServicesEnabled() {
switch CLLocationManager.authorizationStatus() {
case .notDetermined, .restricted, .denied:
print("No access")
case .authorizedAlways, .authorizedWhenInUse:
print("Access")
@unknown default:
break
}
} else {
print("Location services are not enabled")
}
iOS 14.x
iOS 14では、以下のエラーメッセージが表示されます。 authorizationStatus() は iOS 14.0 で非推奨になりました。これを解決するために、次のようにします。
private let locationManager = CLLocationManager()
if CLLocationManager.locationServicesEnabled() {
switch locationManager.authorizationStatus {
case .notDetermined, .restricted, .denied:
print("No access")
case .authorizedAlways, .authorizedWhenInUse:
print("Access")
@unknown default:
break
}
} else {
print("Location services are not enabled")
}
関連
-
iOSコンパイルポッドでエラー CocoaPods could not find compatible versions for pod "XXXXX" が報告される。
-
[解決済み] iOSまたはmacOSで、インターネット接続が有効かどうかを確認するにはどうすればよいですか?
-
[解決済み] iOSのバージョンを確認する方法を教えてください。
-
[解決済み] フレームワークを使用したiOSアプリがデバイス上でクラッシュ、dyld: ライブラリがロードされない、Xcode 6 Beta
-
[解決済み] iOS 8で位置情報サービスが利用できない
-
[解決済み] UIViewに角丸をつける
-
[解決済み] Swift 3, 4, 5 で dispatch_after GCD を書くにはどうしたらいいですか?
-
[解決済み] UIViewの角丸とドロップシャドウ?
-
[解決済み】位置情報サービスが有効になっているかどうかを確認する方法を教えてください。
-
[解決済み] SwiftでUITextFieldとUITextViewのカーソル位置の取得と設定
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] アトミック属性と非アトミック属性の違いは何ですか?
-
[解決済み] iOSのステータスバーの文字色を変更する方法
-
[解決済み] Xcode 6のバグ:Interface Builderファイル内の不明なクラス
-
[解決済み] UITextFieldのテキスト変更イベント
-
[解決済み] iOS 13 のフルスクリーンでモーダルを表示する
-
[解決済み] UITableViewCell、スワイプ時に削除ボタンを表示させる
-
[解決済み] iOSシミュレータでスクリーンショットを撮る
-
[解決済み] NSOperationとGrand Central Dispatchの比較
-
[解決済み] Swiftのプロトコルでオプションのメソッドを定義するには?
-
[解決済み] swiftで電子メールアドレスを検証する方法は?