How do I read Apple Watch battery level in iPhone app without a companion Apple Watch app?

I’m trying to read the battery level of a connected Apple Watch on an iPhone app.

The built-in iOS Batteries widget shows the current Apple Watch battery level, so I know the data is being sent from Apple Watch to iPhone frequently, however I could not find a public API to read the level in my iOS app.

My best solution so far was to build an Apple Watch app that periodically sends the battery level of the Apple Watch to the iPhone using WatchConnectivity.

Then, I found this app.

It can show the battery level of my paired Apple Watch without ever installing an app on the Apple Watch.

To try to accomplish this same thing, I have tried a few different approaches.

First, I tried Core Bluetooth, but after a lot of exploring, troubleshooting, and asking at a Core Bluetooth lab, I’ve ruled that out since Apple Watch does not expose its battery information that way.

I experimented with the External Accessory framework, but that doesn’t seem like the right approach either, since it's for MFi accessories and I couldn't find a way to get Apple Watch info with it.

How is it possible to read the Apple Watch battery level in an iPhone app without sending it from a companion Apple Watch app?

Or is the app I linked to probably using private APIs?

  • Update: This app doesn't seem to work on iOS 15

  • Did you ever figure this out? I am trying to do the same.

Add a Comment

Replies

Are you sure it doesn't install its watchOS counterpart when you install that app from the App Store? It lists that it includes an Apple Watch counterpart?

  • Yes, I am sure the Apple Watch app is not installed. I have Automatic App Install turned off, and I see it listed in the Watch app on iOS under the Available Apps section, which includes all the apps that are available but not installed.

Add a Comment