Pakete, Repositories und App-Kategorien suchen

Paketdetailsv2.3.2

detect_fake_location

Ein Flutter-Plugin zum Erkennen, ob die Standortdaten simuliert oder gefälscht werden

AndroidiOS
30-Tage-Downloads
2700
Likes
41
Pub-Punkte
140

Paket installieren

flutter pub add detect_fake_location

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Ein Flutter-Plugin, das erkennt, ob die Standortdaten eines Geräts manipuliert oder gefälscht werden. Es nutzt plattformspezifische APIs unter Android und iOS, um Standortdaten auf Anzeichen von Spoofing zu analysieren, wie beispielsweise inkonsistente GPS-Signale oder ungewöhnliche Bewegungsmuster. Dadurch können Apps die Echtheit der Benutzerstandorte überprüfen und die Sicherheit sowie Zuverlässigkeit in ortssensitiven Anwendungen verbessern. Das Plugin ist leichtgewichtig und lässt sich nahtlos in bestehende Flutter-Projekte integrieren.

Anwendungsfälle

  • Überprüfung der Benutzerposition in Fahrgemeinschaft-Apps
  • Betrug in ortsbasierten Diensten verhindern
  • Genauigkeit bei Fitness-Tracking-Apps sicherstellen
  • Sicherung des Zugriffs auf ortseingeschränkten Inhalt
  • Erkennung von gefälschten Check-ins oder Standortfreigabe

Hauptmerkmale

  • Cross-Platform-Unterstützung für Android und iOS
  • Verwendet native Geräte-APIs für genaue Erkennung
  • Leichtgewichtig und einfach zu integrieren
  • Bietet klare Hinweise auf Ortsfälschung
  • Minimale Leistungsüberhead

Geeignet für

  • Apps, die sichere Standortüberprüfung erfordern
  • Entwickler, die ortsbewusste Dienste erstellen
  • Anwendungen mit Anti-Betrug-Anforderungen
  • Mobile Apps mit Echtzeit-Geolokalisierung
  • Projekte, die der Einhaltung von Integritätsstandards für Standorte unterliegen

Hinweise

  • Erforderliche Berechtigungen für den Standortzugriff
  • Erkennen aller fortgeschrittenen Spoofing-Methoden möglicherweise nicht
  • Das Verhalten kann sich zwischen Geräten leicht unterscheiden
  • Kein Ersatz für Server-seitige Validierung
  • Begrenzte Wirksamkeit auf gerooteten/Jailbroken-Geräten

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

detect_fake_location

This is a Flutter plugin that detects if the user is using a fake(mock or simulated) location on their device.

Pub License GitHub code size in bytes

Installation

To use this plugin, add detect_fake_location as a dependency in your pubspec.yaml file.

Permissions

iOS

Add the following entries to your Info.plist file

<key>NSLocationAlwaysUsageDescription</key>
<string>App needs access to location when in the background.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>App requires access to location when open.</string>

Add the following to your Podfile

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
    # Start of the permission_handler configuration
    target.build_configurations.each do |config|
      config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
        '$(inherited)',
      # dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
        'PERMISSION_LOCATION=1'
    ]
    end
  end
end
Android

Add the ACCESS_COARSE_LOCATION and ACCESS_FINE_LOCATION permission to your Android Manifest.

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

Usage

Import the package with:

import 'package:detect_fake_location/detect_fake_location.dart';

Then you can use the following method to check if the user is using a fake location:

// Basic usage (default behavior)
bool isFakeLocation = await DetectFakeLocation().detectFakeLocation();

// Advanced usage with configuration options
bool isFakeLocation = await DetectFakeLocation().detectFakeLocation(
  ignoreExternalAccessory: true, // Ignore external accessories like CarPlay
);

Configuration Options

ignoreExternalAccessory (iOS only)

By default, the plugin detects fake locations from both software simulation and external accessories. However, external accessories like CarPlay, external GPS devices, or other legitimate hardware can trigger false positives.

  • Default: false (maintains backward compatibility)
  • When to use true: If you want to ignore location data from external accessories and only detect software-based fake locations
  • Use case: Prevent false positives when users have legitimate external accessories connected
// Only detect software-simulated locations, ignore external accessories
bool isFakeLocation = await DetectFakeLocation().detectFakeLocation(
  ignoreExternalAccessory: true,
);

Example

import 'package:flutter/material.dart';
import 'package:detect_fake_location/detect_fake_location.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'My App',
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('My App'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ElevatedButton(
              child: Text('Detect Fake Location (Standard)'),
              onPressed: () async {
                bool isFakeLocation =
                    await DetectFakeLocation().detectFakeLocation();
                _showResult(context, isFakeLocation, 'Standard Mode');
              },
            ),
            SizedBox(height: 20),
            ElevatedButton(
              child: Text('Detect Fake Location (Ignore External Accessory)'),
              onPressed: () async {
                bool isFakeLocation = await DetectFakeLocation()
                    .detectFakeLocation(ignoreExternalAccessory: true);
                _showResult(context, isFakeLocation, 'Ignore External Accessory Mode');
              },
            ),
          ],
        ),
      ),
    );
  }

  void _showResult(BuildContext context, bool isFakeLocation, String mode) {
    showDialog(
      context: context,
      builder: (BuildContext context) {
        return AlertDialog(
          title: Text('Fake Location Detection Result'),
          content: Text(
              'Mode: $mode\nThe user is${isFakeLocation ? '' : ' not'} using a fake location.'),
          actions: <Widget>[
            TextButton(
              child: Text('OK'),
              onPressed: () {
                Navigator.of(context).pop();
              },
            ),
          ],
        );
      },
    );
  }
}

Image 1 Image 2

Limitations

For iOS, the plugin uses the CLLocationSourceInformation class to detect if the location is simulated by software or produced by an external accessory. This class is only available on iOS 15 or later.

Contribute

Contributions are welcome! Please submit issues and pull requests on the GitHub repository.

Credits

For requesting permissions: permission_handler

Kategorien

Abhängigkeiten

Abhängigkeiten 2 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.