Skip to content
Back to skills

Add Android Pip

ASecurity

Add Picture-in-Picture mode for Android (Android 8+). Use when the user says 'pip android', 'picture in picture android', 'floating window android'.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 4, 2026
developmentgobashreactapi

Works with

  • api

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 2 files and shows the line behind each finding

Scanned October 4, 2026

npx -y skills add khadinakbarlabs/expo-mobile-app-builder --skill add-android-pip --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Add Android Pip?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Add Android Pip
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/khadinakbarlabs-add-android-pip/badge)](https://www.skillsdirectory.com/skills/khadinakbarlabs-add-android-pip)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: "add-android-pip"
description: "Add Picture-in-Picture mode for Android (Android 8+). Use when the user says 'pip android', 'picture in picture android', 'floating window android'."
---

# Add Picture-in-Picture (Android)

Floating mini-window. Best for video, video calls, navigation.

## Enable in manifest

`app.json`:
```json
{
  "expo": {
    "android": {
      "config": { "androidPictureInPicture": true }
    },
    "plugins": [
      ["expo-build-properties", {
        "android": {
          "extraProguardRules": "..."
        }
      }]
    ]
  }
}
```

Inject into `AndroidManifest.xml` via config plugin:
```xml
<activity android:supportsPictureInPicture="true" android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation" />
```

## Enter PiP

Currently no first-class Expo API. Use community:
```bash
pnpm add react-native-picture-in-picture
```

```tsx
import PiP from 'react-native-picture-in-picture';

const enterPip = () => {
  PiP.enter({ aspectRatio: { numerator: 16, denominator: 9 } });
};
```

OR drop down to native via expo-modules-core to call `activity.enterPictureInPictureMode()`.

## Detect PiP state

```tsx
useEffect(() => {
  const sub = AppState.addEventListener('change', state => {
    // No direct PiP state on Android — infer via activity callbacks (need native module)
  });
}, []);
```

## When PiP makes sense

- Video player (YouTube, Netflix pattern)
- Video calls (Zoom, Meet)
- Live workout class
- Navigation map
- Live activity tracker

When PiP DOESN'T

- Static content (use widget instead)
- Forms (no input in PiP)
- Heavy UI (PiP is tiny — keep content simple)

## Common gotchas

- Some launchers (Samsung) don't support PiP for all apps
- PiP exit puts user on home, not back to app — design for this
- Don't put critical controls in PiP only (e.g., emergency stop)

## Pair with
- `add-android-foreground-service` for video playback service
- `add-foldable-tablet` (PiP behavior differs on large screens)

Files in this skill

  • SKILL.md2 KB
  • agents/openai.yaml176 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…