Skip to content

The Free and Open Source app for monitoring your AirPods on Android

License

Notifications You must be signed in to change notification settings

reesque/OpenPods

 
 

Repository files navigation

OpenPods

The Free and Open Source app for monitoring your AirPods on Android

GitHub release License: GPLv3 Minimum SDK

Get it on F-Droid Get it on OpenPods

Screenshots

Big notification Small notification Setup screen Home screen

Features

  • Shows a notification with AirPods status when they are connected
  • Respects your privacy
  • Free and Open Source software
  • Supports Dark Theme

Supported devices

  • Apple AirPods 1st gen
  • Apple AirPods 2nd gen
  • Apple AirPods 3rd gen
  • Apple AirPods Pro
  • Apple AirPods Pro 2
  • Apple AirPods Max
  • Beats X
  • Beats Flex
  • Beats Solo 3
  • Beats Studio 3
  • Powerbeats 3
  • Powerbeats Pro

Integration

This app can post broadcast intents that can be read by any apps on the same device.

To register for a broadcast receiver:

AndroidManifest.xml

<receiver android:name=".AirpodReceiver"
    android:exported="true"
    android:permission="com.dosse.airpods.permission.ACCESS_AIRPOD_INFORMATION">
    <intent-filter>
        <action android:name="com.dosse.airpods.status"/>
    </intent-filter>
</receiver>

Check and request permission

if (checkSelfPermission(context, "com.dosse.airpods.permission.ACCESS_AIRPOD_INFORMATION") == PackageManager.PERMISSION_DENIED) {
    context.requestPermissions(new String[]{"com.dosse.airpods.permission.ACCESS_AIRPOD_INFORMATION"}, 201);
}

Receiver

public class AirpodReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("com.dosse.airpods.status")) {
           // Do something with "intent.getExtras()" here
        }
    }
}

Register Receiver

IntentFilter airpodFilter = new IntentFilter("com.dosse.airpods.status");
AirpodReceiver airpodReceiver = new AirpodReceiver();
registerReceiver(airpodReceiver, airpodFilter);

Intent Extras

Primary action: com.dosse.airpods.status contains the following intent extras:

Intent Extra Type Description
isAllDisconnected boolean True if airpod (including case, left pod, right pod) lost connection, otherwise false
model String Model of the airpod
isSingle boolean True if the model is single (ie. Beats Studio, Beats Solo, etc.), otherwise false
leftPodStatus String Battery percentage (with % suffix) of the left pod if it is connected, blank if disconnected. Only applicable for non-single pod models
rightPodStatus String Battery percentage (with % suffix) of the right pod if it is connected, blank if disconnected. Only applicable for non-single pod models
caseStatus String Battery percentage (with % suffix) of the charging case if it is connected, blank if disconnected. Only applicable for non-single pod models
singlePodStatus String Battery percentage (with % suffix) of the airpod if it is connected, blank if disconnected. Only applicable for single pod models
isLeftPodCharging boolean True if left pod is charging in case, otherwise false. Only applicable for non-single pod models
isRightPodCharging boolean True if right pod is charging in case, otherwise false. Only applicable for non-single pod models
isCaseCharging boolean True if airpod case is charging, otherwise false. Only applicable for non-single pod models
isSinglePodCharging boolean True if single pod is charging, otherwise false. Only applicable for single pod models
leftPodInEar boolean If left pod is detected to be in ear. Only applicable for non-single pod models
rightPodInEar boolean If right pod is detected to be in ear. Only applicable for non-single pod models

DO NOT REUPLOAD TO GOOGLE PLAY

This app violates Google Play policies and is designed to break if you try to fix that unless you really know what you're doing.
Legal actions can and will be taken when uploading a compiled version to the Google Play Store that does not comply with the terms and conditions of the app's license. As a result, you may no longer be able to publish apps to the Google Play Store. This app is not intended to be uploaded to the Google Play Store. The developer is legally allowed to demand compensation.

This paragraph was added due to multiple license violations found on the Google Play Store. If you're not sure whether you're allowed to distribute your modified version, please contact the developer.

Donate

Donate with PayPal

License

GNU GPLv3 Image

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

   

Copyright (C) 2019-2022 Federico Dossena

AirPods is a trademark of Apple inc.

About

The Free and Open Source app for monitoring your AirPods on Android

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%