Ein Flutter-Plugin für plattformspezifische Android-APIs, um doppelte Arbeit zu reduzieren, indem Android-Bindings in einem einzigen Paket zentralisiert werden.
Aus öffentlichen Paketdaten erstellte Orientierung.
Ein Flutter-Plugin, das Zugriff auf Android-spezifische Plattform-APIs bietet und Entwicklern ermöglicht, native Android-Funktionen innerhalb von Flutter-Apps zu nutzen. Durch die Zentralisierung der Android-Bindings in einem Paket wird Code-Duplikation reduziert und die Entwicklung über Projekte hinweg vereinfacht. Das Plugin ist für eine nahtlose Integration mit dem Plattformkanalsystem von Flutter konzipiert, wodurch eine effiziente Kommunikation zwischen Dart und nativem Android-Code möglich ist. Es unterstützt eine Reihe von gerätespezifischen Funktionen und Systeminteraktionen, die spezifisch für Android sind.
Anwendungsfälle
Zugriff auf android-spezifische Systemfunktionen
Integration nativer Android-Bibliotheken
Reduzierung von Code-Duplikaten über Flutter-Projekte hinweg
Plattformoptimierte Android-Erlebnisse erstellen
Erweiterte Gerätesteuerung aus Flutter aktivieren
Hauptmerkmale
Zentralisierte Android-API-Bindungen
Minimales Boilerplate für Native-Integration
Unterstützt Flutter's Plattformkanal
Für Wartbarkeit konzipiert
Open-Source und communitygetrieben
Geeignet für
Android-fokussierte Flutter-Entwickler
Teams, die mehrere Flutter-Apps pflegen
Projekte mit tiefer Android-Integration
Entwickler, die redundanten Plattformcode vermeiden
Hinweise
Beschränkt auf die Android-Plattform
Kenntnisse in der Android-Native-Entwicklung erforderlich
Nicht geeignet für reine Cross-Platform-Anwendungsfälle
Abhängig von der korrekten Einrichtung der Plattformkanäle
Kann Aktualisierungen für neue Android SDK-Versionen erfordern
Original-README
Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.
Flutter Android Bindings
This is a Flutter plugin for using Android's
numerous platform-specific APIs in Flutter apps.
import'package:flutter_android/android_os.dart'showParcel;
var parcel = Parcel.obtain()
..writeBoolean(true)
..writeInt(42)
..writeDouble(3.1415)
..writeString("Hello, world!")
..writeList(<Object>[1, 2, 3])
..writeMap(<String, Object>{"a": 1, "b": 2, "c": 3});
await _channel.invokeMethod('someJavaMethod', parcel.asUint8List());
// In Java, your MethodCallHandler's call.arguments contains the marshaled Parcel
Face detection
import'package:flutter_android/android_graphics.dart'showBitmap;
import'package:flutter_android/android_media.dart'showFace, FaceDetector;
var photo = Image.asset("images/einstein.png");
var bitmap = Bitmap.fromAssetImage(photo.image asAssetImage);
var detector = FaceDetector(width: 280, height: 396);
for (var face inawait detector.findFaces(bitmap)) {
if (face.confidence < Face.CONFIDENCE_THRESHOLD) {
continue; // skip dubious results below the cut-off threshold
}
print("Found a face at (${face.midPoint.x}, ${face.midPoint.y}) with confidence ${face.confidence}");
}
Heart-rate monitoring
import'package:flutter_android/android_hardware.dart'showSensor, SensorEvent, SensorManager;
var sensor = awaitSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE);
var events = await sensor.subscribe();
events.listen((SensorEvent event) {
print(event.values[0]);
});
Frequently Asked Questions
TODO
Caveats
iOS is not and cannot be supported.
All flutter_android APIs throw an AssertionError if they are invoked
when running on iOS. For cross-platform apps, we recommend that you depend
on the platform package to
conditionalize your use of Android APIs.