Orientação gerada a partir de informações públicas. Apenas para referência.
Um plugin do Flutter que fornece acesso às APIs específicas da plataforma Android, permitindo que desenvolvedores aproveitem funcionalidades nativas do Android em aplicativos Flutter. Ao centralizar os bindings do Android em um único pacote, ele reduz a duplicação de código e simplifica o desenvolvimento entre projetos. O plugin foi projetado para integração perfeita com o sistema de canal de plataforma do Flutter, permitindo comunicação eficiente entre o Dart e o código nativo do Android. Ele suporta uma variedade de recursos de nível de dispositivo e interações do sistema exclusivas do Android.
Casos de uso
Acessando recursos de sistema específicos do Android
Integrando bibliotecas nativas do Android
Reduzindo a duplicação de código entre projetos Flutter
Criar experiências Android otimizadas para a plataforma
Habilitar controle avançado de dispositivos do Flutter
Principais recursos
Vinculações de API do Android centralizadas
Boilerplate mínimo para integração nativa
Suporta o canal de plataforma do Flutter
Projetado para manutenibilidade
Open-source e impulsionado pela comunidade
Indicado para
Desenvolvedores Flutter voltados para Android
Equipes mantendo múltiplos aplicativos Flutter
Projetos que exigem integração profunda com o Android
Desenvolvedores evitando código de plataforma redundante
Considerações
Limitado à plataforma Android
Requer conhecimento de desenvolvimento nativo Android
Não adequado para casos de uso exclusivamente multiplataforma
Depende da configuração correta dos canais de plataforma
Pode exigir atualizações para novas versões do Android SDK
README original
Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.
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.