Skip to main content

flutter_device_apps 1.1.0 copy "flutter_device_apps: ^1.1.0" to clipboard
flutter_device_apps: ^1.1.0 copied to clipboard

PlatformAndroid

Flutter plugin to list installed Android apps, get app icons, check installation status, launch apps, and detect packaged frameworks.

flutter_device_apps #

Pub flutter_device_apps Pub points Star on Github License: MIT

A Flutter plugin to list installed Android apps, get app icons, check installation status, launch apps, and monitor app changes. Also detects packaged frameworks.

Requires Android API 24+, Flutter 3.44+, and Dart 3.12+. API reference · Guide: List installed Android apps in Flutter

Call WidgetsFlutterBinding.ensureInitialized() only when using APIs before runApp(). Calls from initState() and UI callbacks need no extra initialization.

List installed Android apps #

final apps = await FlutterDeviceApps.listApps(
  includeSystem: false,
  onlyLaunchable: true,
  includeIcons: false,
  packageNamePrefix: null, // Optional: 'com.google.'.
  packageNameContains: null, // Optional: 'photos'.
);

Filters are case-sensitive and combined with AND; null or '' disables each filter.

Get apps by package name #

final app = await FlutterDeviceApps.getApp('com.whatsapp', includeIcon: true);

final apps = await FlutterDeviceApps.getApps(
  ['com.whatsapp', 'org.telegram.messenger'],
  includeIcons: true,
);

getApp() returns null if unavailable; getApps() returns [] when no apps are found.

Detect packaged app frameworks #

final frameworks = await FlutterDeviceApps.detectAppFrameworks('com.example.app');

Detects packaged indicators for Flutter, React Native, Unity, Unreal Engine, Godot, and .NET Android. This does not identify the app's primary UI framework. [] means no supported match; scan failures throw.

Listen to app install, update, and uninstall events #

final subscription = FlutterDeviceApps.appChanges.listen(
  (event) => print('${event.type}: ${event.packageName}'),
  onError: (error) => print(error),
);

Stop listening with await subscription.cancel().

More APIs #

All methods below belong to FlutterDeviceApps.

Method Purpose
getAppIcon(packageName) Get PNG icon bytes.
isAppInstalled(packageName) Check whether the app is installed and visible.
isSystemApp(packageName) Check system app status; null if unavailable.
isAppEnabled(packageName) Check enabled status; null if unavailable.
isAppLaunchable(packageName) Check whether a launch intent exists.
getRequestedPermissions(packageName) Get requested permission names.
getInstallSourceInfo(packageName) Get installer and install source metadata.
openApp(packageName) Launch the app.
openAppSettings(packageName) Open Android app settings.
uninstallApp(packageName) Open the uninstall confirmation screen.

Android setup #

Only visible packages can be queried. Launcher app visibility is included. Place the XML below inside <manifest>, outside <application>, as needed.

For other specific packages:

<queries>
    <package android:name="com.example.service" />
</queries>

For broader visibility, add this permission; Google Play restricts its use. See package visibility.

<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />

uninstallApp() requires:

<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />

License #

MIT © 2026 okmsbun

6
likes
160
points
3.56k
downloads

Documentation

API reference

Publisher

verified publisherbunyaminokumus.com

Weekly Downloads

Flutter plugin to list installed Android apps, get app icons, check installation status, launch apps, and detect packaged frameworks.

Repository (GitHub)
View/report issues
Contributing

Topics

#installed-apps #app-management #package-manager

License

MIT (license)

Dependencies

flutter, flutter_device_apps_android, flutter_device_apps_platform_interface

More

Packages that depend on flutter_device_apps

Packages that implement flutter_device_apps