패키지, 저장소 및 앱 카테고리 검색

GitHub 저장소sharmadhiraj/installed_apps

설치된 앱

기기의 설치된 앱과 관련된 유틸리티 메서드를 제공하는 플러터 플러그인입니다.

설치된 앱 프로젝트 이미지
스타
54
포크
73
최근 푸시(UTC)
2026. 2. 3.
프로젝트 상태
활성

원본 README

아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.

Installed Apps

Installed Apps is a Flutter plugin that provides utilities to interact with installed apps on a device. You can list installed apps, get app info, launch apps, open settings, and more.

⚠️ Currently, only Android is supported. iOS methods return default/fallback values.


Version 2.0.0 Breaking Changes

Version 2.0.0 has some breaking changes, for example, getInstalledApps now uses **named arguments ** instead of positional arguments as before. Additionally, some other argument names have been updated.

Features

  • List installed apps with optional filters:
    • Exclude system apps
    • Exclude non-launchable apps
    • Filter by package name prefix
    • Filter by platform type
  • Get detailed app info
  • Launch apps by package name
  • Open app settings
  • Check if an app is system or installed
  • Uninstall apps
  • Show toast messages

Installation

flutter pub add installed_apps

Or check the Installation Guide.

Example project: GitHub


Usage

Get Installed Apps
List<AppInfo> apps = await InstalledApps.getInstalledApps(
  // Optional: whether to exclude system apps from the list. Default is true.
  excludeSystemApps: true,

  // Optional: whether to exclude apps that cannot be launched (no launch intent). Default is true.
  excludeNonLaunchableApps: true,

  // Optional: whether to include app icons in the result. Default is false.
  withIcon: false,

  // Optional: filter apps whose package names start with this prefix. Default is null (no filtering).
  packageNamePrefix: "com.example",

  // Optional: filter apps by platform type (Flutter, React Native, etc.). Default is null (no filtering).
  platformType: PlatformType.flutter,
);
Get App Info
AppInfo? app = await InstalledApps.getAppInfo("com.example.myapp");
AppInfo Model
class AppInfo {
  String name;
  Uint8List? icon; // nullable
  String packageName;
  String versionName;
  int versionCode;
  PlatformType platformType;
  int installedTimestamp;
  bool isSystemApp;
  bool isLaunchableApp;
  AppCategory category;
}
Launch App
await InstalledApps.startApp("com.example.myapp");
Open App Settings
InstalledApps.openSettings("com.example.myapp");
Check System App
bool? isSystem = await InstalledApps.isSystemApp("com.example.myapp");
Uninstall App
bool? success = await InstalledApps.uninstallApp("com.example.myapp");
Check if Installed
bool? installed = await InstalledApps.isAppInstalled("com.example.myapp");

AppCategory enum

⚠️ Only available on Android API 28+. On lower SDK versions, all apps will have undefined.

enum AppCategory {
  game(0, "Game"),
  audio(1, "Audio"),
  video(2, "Video"),
  image(3, "Image"),
  social(4, "Social"),
  news(5, "News"),
  maps(6, "Maps"),
  productivity(7, "Productivity"),
  accessibility(8, "Accessibility"),
  undefined(-1, "Undefined");
}

PlatformType enum

enum PlatformType {
  flutter('flutter', 'Flutter'),
  reactNative('react_native', 'React Native'),
  xamarin('xamarin', 'Xamarin'),
  ionic('ionic', 'Ionic'),
  nativeOrOthers('native_or_others', 'Native or Others');
}

QUERY_ALL_PACKAGES Permission and Play Store Review

The QUERY_ALL_PACKAGES permission is required for some functionality of this package, but including it can cause Play Store rejections if your app doesn’t justify it. To handle this, either declare its necessity in the Play Store listing or use tools:node="remove" in your manifest to exclude it while still using the package (note this will limit visibility to all apps). For multi-flavor setups, you can include the permission in src/dev/AndroidManifest.xml for internal/dev builds and remove it in src/playstore/AndroidManifest.xml for Play Store builds, ensuring each flavor has the correct manifest without affecting core functionality.

Notes

  • Android requires QUERY_ALL_PACKAGES permission for full app visibility. Ensure compliance with Play Store policies.
  • All methods catch exceptions and return default/fallback values to prevent crashes.
  • Platform type detection is heuristic and may misclassify some apps. Improvements are ongoing.

Support

If you encounter any issues or have suggestions, please open an issue on GitHub. Contributions and feedback are welcome!

Dhiraj Sharma GitHub avatar
GitHub 작성자

Dhiraj Sharma ↗

Mobile Application Developer (Flutter, Native Android)

Kathmandu, Nepal공식 웹사이트 ↗
언어DartKotlin

분류

이 저장소가 배포한 패키지

사용 중인 의존성

의존성 목록 2 개

프로젝트에 맞는 저장소를 선택하려면?

사용 목적에 따라 검색하고 개발 활동을 비교한 뒤 원본 저장소에서 요구 사항을 확인하세요.

  1. 이름, 작성자 또는 설명으로 검색하고 기술 주제로 범위를 좁힙니다.
  2. 스타, 포크, 최근 푸시를 함께 비교하세요. 스타는 관심의 지표이며 품질을 보장하지 않습니다.
  3. 사용하기 전에 GitHub에서 README, 라이선스, Issues를 확인하세요.

출처 및 관리

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗