AppleWatch「GPSブイ」手動でGPS停止【備忘録】

経緯

  • アプリを使用しGPSを利用するとバッテリーがかなり消耗します
  • Apple Watchからは、GPSを単独で停止することができませんが、iPhoneの「Watch」アプリから手動で停止することができます。(どなたか、Swiftで出来る方法があれば、教えてください)

 

弱手手法

  • AppleWatch側
    • GPSブイが止まっている時は

     

    • 表示されるボタンと押すと、iPhoneでオンして下さいとメッセージを出す

      • メッセージ(変更:20240509)

  •          

    •  OKアラートを記載
      • 全てのボタンに位置情報サービスを開始できるか確認し、場合によりアラートを表示させる
    • Button(action: {

          // No.2 GPSブイを登録する際、GPS情報入手不可能な時、isShowAlertでアラート発生

          //          manager.reloadRegion(bouyNo: 2)

          if false == manager.reloadRegion(bouyNo: 2){

              isShowAlert.toggle()

          }

      }) {

          Image(systemName: "mappin.circle.fill")

              .foregroundColor(.white)

              .font(.system(size: 12))

          Text("3")

              .foregroundColor(.white)

              .font(.system(size: 12))

      }

      .frame(width: 41, height: 23)

      .cornerRadius(30.0)

        

      //OkAlertを記載

      .alert("Error", isPresented: $isShowAlert) {

          // ダイアログ内で行うアクション処理...

      } message: {

          // アラートのメッセージ...

          Text("アプリの位置情報サービスを\niPhoneから\nオンにして下さい")

      }

       

    •  GPS情報入手可否確認

    • //位置情報サービスがデバイス上で有効になっているか?

      if CLLocationManager.locationServicesEnabled() {

          let status = manager.authorizationStatus

          switch status {

          case .authorizedAlways, .authorizedWhenInUse:

              //ユーザーは、アプリがいつでも位置情報サービスを開始することを許可している

              //ユーザーは、アプリの使用中に位置情報サービスを開始することを許可した

              //この時は

              //ユーザーの現在位置を報告するアップデートの生成を開始

              manager.startUpdatingLocation()

          case .notDetermined:

              //アプリの使用中に位置情報サービスを使用する許可をユーザーに要求

              manager.requestWhenInUseAuthorization()

          case .denied:

              //ユーザーがアプリの位置情報サービスの使用を拒否しているので、アラートで知らせ

              return false

          case .restricted:

              //このアプリは位置情報サービスを使用する権限がない

              break

          default:

              break

          }

      }else {

          //ユーザーがアプリの位置情報サービスの使用を拒否しているので、アラートで知らせる

          return false

      }

      return true

       

  •  

  •  iPhone側、その1設定から  (追加:20240509)
    • 設定
    • プライバシーとセキュリティー
    • 位置情報サービス
    • gpsBuoy
    • このアプリの使用中

 

     

    • プライバシーを選択

     

    • 「”設定”の”プライバシー”」(オレンジ文字)を選択

     

    • 位置情報サービスを選択

    • gpsBuoyを選択

     

    •  GPSを切る時は「しない」

     

    • GPSを使う時は「このアプリの使用中」を選択

     

 

 

ここまで見てください、ありがとうございます

 

 

プライバシーポリシー |ページトップへ

`