App Settings Checker

A Flutter plugin to check common device settings and open system settings menus.
By PT. Nicxon International Solutions


πŸ“š Table of Contents


πŸš€ Installation

Add the plugin to your project:

flutter pub add app_settings_checker

πŸ“± Platform Setup

Android

Required Permissions

Add the necessary permissions to your AndroidManifest.xml based on your usage:

πŸ”‹ Battery Optimizations
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
πŸ“ Location Access
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
πŸ†” Device ID (for Build.SERIAL on Android < 10)
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

iOS

πŸ“ Location Services

Add the following key(s) to your Info.plist to request location permission from the user:

<key>NSLocationWhenInUseUsageDescription</key>
<string>Need location access to check GPS settings.</string>

You can also add NSLocationAlwaysUsageDescription if your app requires background location.

πŸ†” Device ID

iOS does not allow permanent device IDs like Android’s ANDROID_ID.
The plugin uses identifierForVendor, which resets on uninstall/reinstall.


🧩 Usage

Import the package:

import 'package:app_settings_checker/app_settings_checker.dart';

Open App Settings

AppSettingsChecker.openAppSettings();

Location Settings

Check if location is enabled:

final isEnabled = await AppSettingsChecker.isLocationEnabled();

Open location settings (note: on iOS, this opens the app's settings page, not system location settings):

AppSettingsChecker.openLocationSettings();

Notification Settings

Check if notifications are enabled:

final isEnabled = await AppSettingsChecker.areNotificationsEnabled();

Open notification settings:

AppSettingsChecker.openNotificationSettings();

Battery Optimization Settings

Check if battery optimization is disabled (Android only, not applicable on iOS):

final isDisabled = await AppSettingsChecker.isBatteryOptimizationDisabled();

Open battery optimization settings:

AppSettingsChecker.openBatteryOptimizationSettings();

App Info & Device Details

Get app version:

final version = await AppSettingsChecker.getAppVersion();

Get phone model:

final model = await AppSettingsChecker.getPhoneModel();

Get device ID:

final deviceId = await AppSettingsChecker.getDeviceId();

Get Platform Version

await AppSettingsChecker.getPlatformVersion();