{"id":15008694,"url":"https://github.com/g123k/flutter_plugin_device_apps","last_synced_at":"2025-10-03T16:31:39.378Z","repository":{"id":41045571,"uuid":"136336445","full_name":"g123k/flutter_plugin_device_apps","owner":"g123k","description":"Flutter plugin to get the list of installed applications (iOS is not supported yet).","archived":true,"fork":false,"pushed_at":"2024-07-11T23:55:03.000Z","size":280,"stargazers_count":107,"open_issues_count":44,"forks_count":95,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-01T06:06:15.299Z","etag":null,"topics":["android","apps","dart","dartlang","flutter","flutter-plugin","icons","launcher"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/device_apps","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/g123k.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-06T13:57:37.000Z","updated_at":"2024-12-01T06:51:00.000Z","dependencies_parsed_at":"2024-06-18T16:44:05.848Z","dependency_job_id":"5e083a3c-828c-4a3f-ad6a-999c52e18ae6","html_url":"https://github.com/g123k/flutter_plugin_device_apps","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/g123k%2Fflutter_plugin_device_apps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/g123k%2Fflutter_plugin_device_apps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/g123k%2Fflutter_plugin_device_apps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/g123k%2Fflutter_plugin_device_apps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/g123k","download_url":"https://codeload.github.com/g123k/flutter_plugin_device_apps/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235156012,"owners_count":18944827,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","apps","dart","dartlang","flutter","flutter-plugin","icons","launcher"],"created_at":"2024-09-24T19:20:02.971Z","updated_at":"2025-10-03T16:31:38.769Z","avatar_url":"https://github.com/g123k.png","language":"Dart","readme":"# Device Apps plugin for Flutter (UNMAINTAINED)\n\n[![Pub](https://img.shields.io/pub/v/device_apps.svg)](https://pub.dartlang.org/packages/device_apps)\n\nA plugin to list installed applications on an Android device (⚠️ iOS is not supported). You can also listen to app changes (eg: installations, updates…)\n\n## BREAKING CHANGE - 05th May 2021\n\n[May 5 2021](https://support.google.com/googleplay/android-developer/answer/10158779) will mark a breaking change on how applications requesting [`QUERY_ALL_PACKAGES`](https://developer.android.com/reference/kotlin/android/Manifest.permission#query_all_packages) are accepted in the Google Play (and only this app store !). [Quoting from the doc](https://support.google.com/googleplay/android-developer/answer/10158779):\n\n\n\u003e Permitted use involves apps that must discover any and all installed apps on the device, for awareness or interoperability purposes may have eligibility for the permission. Permitted use includes; device search, antivirus apps, file managers, and browsers.\n\u003e \n\u003e Apps granted access to this permission must comply with the User Data policies, including the Prominent Disclosure and Consent requirements, and may not extend its use to undisclosed or invalid purposes.\n\n\nMore info here: https://support.google.com/googleplay/android-developer/answer/10158779\n\n**Starting with version 2.1.0 of this plugin, the [`QUERY_ALL_PACKAGES`](https://developer.android.com/reference/kotlin/android/Manifest.permission#query_all_packages) permission won't be requested by default!**\n\n## Change with Android 11\n\nStarting 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`](https://developer.android.com/reference/kotlin/android/Manifest.permission#query_all_packages). A few notes about this:\n\n- A normal permission doesn't require the user consent\n- Before version 2.1 of this plugin, the permission was requested automatically. This is not the case anymore\n\nIf you want to use, simply add the following to your AndroidManifest.xml:\n\n```xml\n\u003cmanifest...\u003e\n\n    \u003cuses-permission android:name=\"android.permission.QUERY_ALL_PACKAGES\" /\u003e\n\n\u003c/manifest\u003e\n```\n\n\n\nHowever, publishing applications on the Google Play with this kind of feature **may change** in the future. [Quoting from the documentation](https://developer.android.com/reference/kotlin/android/Manifest.permission#query_all_packages):\n\n\u003e In an upcoming policy update, look for Google Play to provide guidelines for apps that need the QUERY_ALL_PACKAGES permission.\n\n**👍 Right now, there is no limitation, but be aware that this may change in the future.**\n\n## Getting Started\n\nFirst, you have to import the package in your dart file with:\n\n```dart\nimport 'package:device_apps/device_apps.dart';\n```\n\n## List of installed applications\n\nTo list applications installed on the device:\n\n```dart\nList\u003cApplication\u003e apps = await DeviceApps.getInstalledApplications();\n```\n\nYou can filter system apps if necessary.\n\n**Note**: The list of apps is not ordered! You have to do it yourself.\n\n### Get apps with a launch Intent\n\nA launch Intent means you can launch the application.\n\nTo list only the apps with launch intents, simply use the `onlyAppsWithLaunchIntent: true` attribute.\n\n```dart\n// Returns a list of only those apps that have launch intent\nList\u003cApplication\u003e apps = await DeviceApps.getInstalledApplications(onlyAppsWithLaunchIntent: true, includeSystemApps: true)\n```\n\n## Get an application\n\nTo get a specific application info, please provide its package name:\n\n```dart\nApplication app = await DeviceApps.getApp('com.frandroid.app');\n```\n\n## Check if an application is installed\n\nTo check if an app is installed (via its package name):\n\n```dart\nbool isInstalled = await DeviceApps.isAppInstalled('com.frandroid.app');\n```\n\n## Open an application\n\nTo open an application (with a launch Intent)\n\n```dart\nDeviceApps.openApp('com.frandroid.app');\n```\n\n## Open an application settings screen\n\nTo open an application settings screen\n\n```dart\nDeviceApps.openAppSettings('com.frandroid.app');\n```\n\n## Uninstall an application\n\nTo open the screen to uninstall an application:\n\n1. Add this permission to the `AndroidManifest.xml` file:\n\n```xml\n\u003cmanifest...\u003e\n\n    \u003cuses-permission android:name=\"android.permission.REQUEST_DELETE_PACKAGES\" /\u003e\n\n\u003c/manifest\u003e\n```\n\n2. Call this method:\n\n```dart\nDeviceApps.uninstallApp('com.frandroid.app');\n```\n\n\n\n## Include application icon\n\nWhen calling `getInstalledApplications()` or `getApp()` methods, you can also ask for the icon.\nTo display the image, just call:\n\n```dart\nImage.memory(app.icon);\n```\n\n## Listen to app changes\n\nTo listen to applications events on the device (installation, uninstallation, update, enabled or disabled):\n\n```dart\nStream\u003cApplicationEvent\u003e apps = await DeviceApps.listenToAppsChanges();\n```\n\nIf you only need events for a single app, just use the `Stream` API, like so:\n\n```dart\nDeviceApps.listenToAppsChanges().where((ApplicationEvent event) =\u003e event.packageName == 'com.frandroid.app')\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fg123k%2Fflutter_plugin_device_apps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fg123k%2Fflutter_plugin_device_apps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fg123k%2Fflutter_plugin_device_apps/lists"}