# appcheck 1.8.1

Flutter plugin that allows you to check if an app is installed/enabled, launch an app and get the list of installed apps.




## Installing
```
export PUB_HOSTED_URL=https://pub.mirror.p-hatan.com
flutter pub add appcheck
```
Published: 2026-08-27T17:26:26.881518Z
Expected archive SHA-256: 79b1373029cf8115486e2526047972a6da6abbe63774c97b76673ae4eba5f854

Available in cache; verification: upstream_checksum
## Direct dependencies
- flutter: map[sdk:flutter]

## Package README (untrusted upstream documentation)
# AppCheck

[![Pub](https://img.shields.io/pub/v/appcheck.svg)](https://pub.dartlang.org/packages/appcheck)

A Flutter plugin that allows you to check if an app is installed/enabled, launch an app and get the list of installed apps.

## Installation

First, add `appcheck` as a [dependency in your pubspec.yaml file](https://flutter.io/using-packages/).

## Methods available

- `checkAvailability(String uri)`
- `isAppInstalled(String uri)`
- `getInstalledApps()` (only for **Android**)
- `isAppEnabled(String uri)` (only for **Android**)
- `launchApp(String uri)`

## Permissions

Before using the plugin, you need to add declarations in your configuration files.

### Android

If you want to use the `getInstalledApps()` function, you need the `QUERY_ALL_PACKAGES` permission.

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

 If you only want to check certain apps and you know the packageName, add them via queries in AndroidManifest.xml.

 ```xml
<queries>
    <package android:name="com.google.android.apps.maps"/>
</queries>
 ```

### iOS

Make sure your `Info.plist` file includes the necessary URL schemes under `LSApplicationQueriesSchemes` to check and launch other apps:

```xml
<key>LSApplicationQueriesSchemes</key>
<array>
    <string>scheme1</string>
    <string>scheme2</string>
    <!-- Add more schemes as needed -->
</array>
```

Example:

```xml
<key>LSApplicationQueriesSchemes</key>
<array>
    <string>fb</string>
    <string>twitter</string>
    <string>instagram</string>
    <string>whatsapp</string>
    <string>youtube</string>
    <string>comgooglemaps</string>
    <string>http</string>
    <string>https</string>
    <string>mailto</string>
    <!-- Add more schemes as needed -->
</array>
```

Check out [Example](https://github.com/Yash-Garg/appcheck/blob/develop/example/lib/main.dart).

## Screenshots

<p align="center">
  <img width="48.2%" src="https://raw.githubusercontent.com/Yash-Garg/AppCheck/develop/images/screen-android.png">
  <img width="47%" src="https://raw.githubusercontent.com/Yash-Garg/AppCheck/develop/images/screen-ios.png">
</p>

## Changelog
## 1.8.1

### Bug Fixes

- Fixed deprecation warning for `UIApplication.canOpenURL(_:)`, deprecated in the iOS 27 SDK. The call is now isolated to a dedicated, explicitly-deprecated helper, and `launchApp` opens URLs directly and handles failure via the completion handler instead of pre-flighting with `canOpenURL(_:)`. ([#24](https://github.com/Yash-Garg/appcheck/issues/24))

## 1.8.0

### Breaking Changes

- Minimum Flutter version is now 3.44.0.
- Minimum Dart SDK version is now 3.12.0.
- Minimum iOS deployment target bumped from 9.0 to 12.0.

### Maintenance

- Migrated Android plugin to Flutter's built-in Kotlin (AGP 9 / KGP 2.0+). Removed explicit `kotlin-android` plugin, `kotlin-stdlib` dependency, and `kotlinOptions` block; replaced with the `kotlin { compilerOptions {} }` DSL.
- Updated iOS podspec version to match pubspec and bumped Swift version to 5.9.

## 1.7.0

### Performance
- **Fixed UI blocking**: `getInstalledApps()` no longer freezes the UI. Method channel handlers now run on a background thread using Flutter's `makeBackgroundTaskQueue()`.

### New Features
- Added `includeIcon` parameter to `getInstalledApps()` - set to `false` for significantly faster performance when icons aren't needed.
- Added `includeSystemApps` parameter to `getInstalledApps()` - set to `false` to only retrieve user-installed apps.

### Bug Fixes
- Fixed `versionCode` type mismatch that could cause issues on Android API 28+.

### Breaking Changes
- Minimum Dart SDK version is now 3.0.0
- Minimum Flutter version is now 3.10.0

### 1.6.0

- Updated Android dependencies
- Increased Android minSdk version to 24

### 1.5.4

- Support for Swift Package Manager on iOS.
- Misc. updates to `example` app.

## 1.5.3
- Added null check for `appInfo`.

## 1.5.2

- You need to now make an instance of the class to use the methods, instead of using static methods. Checkout the example in the README for more info.

## 1.3.0 - 1.5.0

- Minor code cleanup and dependency updates.
- Fixes for iOS app launches and README instructions.

## 1.0.6

- Lowered dart sdk constraint to >=2.12.0 from 2.17.0

## 1.0.5

- Remove QUERY_ALL_PACKAGES permission due to playstore policies (check README for more info)

## 1.0.4

- Fixed some lint warnings
- Updated Dart SDK min version to 2.17

## 1.0.3

- Fixed system app logic for Android
- Fixed opening URLs on earlier iOS versions

## 1.0.0 - 1.0.2

- Rewritten in Kotlin and with Null-Safety.







 
