device_apps 1.3.0 copy "device_apps: ^1.3.0" to clipboard
device_apps: ^1.3.0 copied to clipboard

discontinued
outdated

Plugin to list applications installed on an Android device (iOS is not supported). You can also monitor application changes (updates, uninstallation…)

Device Apps plugin for Flutter #

Pub

A plugin to list installed applications on an Android device (⚠️ iOS is not supported). You can also listen to app changes (eg: installations, updates…)

Change with Android 11 #

Starting with Android 11, Android applications targeting API level 30, willing to list "external" applications have to declare a new "normal" permission in their AndroidManifest.xml file called QUERY_ALL_PACKAGES. A few notes about this:

  • A normal permission doesn't require the user consent
  • Don't worry, this plugin automatically adds the permission for you

However, publishing applications on the Google Play with this kind of feature may change in the future. Quoting from the documentation:

In an upcoming policy update, look for Google Play to provide guidelines for apps that need the QUERY_ALL_PACKAGES permission.

👍 Right now, there is no limitation, but be aware that this may change in the future.

Getting Started #

First, you have to import the package in your dart file with:

import 'package:device_apps/device_apps.dart';

List of installed applications #

To list applications installed on the device:

List<Application> apps = await DeviceApps.getInstalledApplications();

You can filter system apps if necessary.

Note: The list of apps is not ordered! You have to do it yourself.

Get apps with a launch Intent #

A launch Intent means you can launch the application.

To list only the apps with launch intents, simply use the onlyAppsWithLaunchIntent: true attribute.

// Returns a list of only those apps that have launch intent
List<Application> apps = await DeviceApps.getInstalledApplications(onlyAppsWithLaunchIntent: true, includeSystemApps: true)

Get an application #

To get a specific application info, please provide its package name:

Application app = await DeviceApps.getApp('com.frandroid.app');

Check if an application is installed #

To check if an app is installed (via its package name):

bool isInstalled = await DeviceApps.isAppInstalled('com.frandroid.app');

Open an application #

To open an application (with a launch Intent)

DeviceApps.openApp('com.frandroid.app');

Open an application settings screen #

To open an application settings screen

DeviceApps.openAppSettings('com.frandroid.app');

Include application icon #

When calling getInstalledApplications() or getApp() methods, you can also ask for the icon. To display the image, just call:

Image.memory(app.icon);

Listen to app changes #

To listen to applications events on the device (installation, uninstallation, update, enabled or disabled):

Stream<ApplicationEvent> apps = await DeviceApps.listenToAppsChanges();

If you only need events for a single app, just use the Stream API, like so:

DeviceApps.listenToAppsChanges().where((ApplicationEvent event) => event.packageName == 'com.frandroid.app')
336
likes
40
pub points
98%
popularity

Publisher

verified publisherdaad.mobi

Plugin to list applications installed on an Android device (iOS is not supported). You can also monitor application changes (updates, uninstallation…)

Repository (GitHub)
View/report issues

License

Apache-2.0 (license)

Dependencies

flutter

More

Packages that depend on device_apps