Flutter Android Bindings
This is a Flutter plugin for using Android's
numerous platform-specific APIs in Flutter apps.
Screenshot
Prerequisites
Compatibility
Android only.
Installation
dependencies:
flutter_android: ^0.8.0
Features
Feature Table
Feature
Flutter API
Activity launch
android_content.Intent#startActivity()
Bluetooth scanning
android_bluetooth.BluetoothLeScanner
Distance calculation
android_location.Location.distanceBetween()
Face detection
android_media.FaceDetector
Heart-rate monitoring
android_hardware.SensorManager.getDefaultSensor()
Parcel serialization
android_os.Parcel
Sensor event streams
android_hardware.Sensor#subscribe()
TODO: dirs
Examples
Activity launch
import 'package:flutter_android/android_content.dart' show Intent ;
await Intent (
action: "android.intent.action.VIEW" ,
data: Uri .parse ("https://flutter.dev" ),
).startActivity ();
Parcel serialization
import 'package:flutter_android/android_os.dart' show Parcel ;
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 ());
Face detection
import 'package:flutter_android/android_graphics.dart' show Bitmap ;
import 'package:flutter_android/android_media.dart' show Face , FaceDetector ;
var photo = Image .asset ("images/einstein.png" );
var bitmap = Bitmap .fromAssetImage (photo.image as AssetImage );
var detector = FaceDetector (width: 280 , height: 396 );
for (var face in await detector.findFaces (bitmap)) {
if (face.confidence < Face .CONFIDENCE_THRESHOLD) {
continue ;
}
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'
show Sensor , SensorEvent , SensorManager ;
var sensor = await SensorManager .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.
Reference
import 'package:flutter_android/android.dart' as android;
import 'package:flutter_android/android_app.dart' as android_app;
import 'package:flutter_android/android_bluetooth.dart' as android_bluetooth;
import 'package:flutter_android/android_content.dart' as android_content;
import 'package:flutter_android/android_database.dart' as android_database;
import 'package:flutter_android/android_graphics.dart' as android_graphics;
import 'package:flutter_android/android_hardware.dart' as android_hardware;
import 'package:flutter_android/android_location.dart' as android_location;
import 'package:flutter_android/android_media.dart' as android_media;
import 'package:flutter_android/android_os.dart' as android_os;
Cross-Reference
Android
Flutter
android.app
android_app
android.app.Activity
android_app.Activity
android.app.ActivityManager
android_app.ActivityManager
android.app.AlarmManager
android_app.AlarmManager
android.app.AuthenticationRequiredException
android_app.AuthenticationRequiredException
android.app.DownloadManager
android_app.DownloadManager
android.app.KeyguardManager
android_app.KeyguardManager
android.app.Notification
android_app.Notification
android.app.Notification.Action
android_app.NotificationAction
android.app.Notification.Builder
android_app.NotificationBuilder
android.app.NotificationManager
android_app.NotificationManager
android.app.PendingIntent
android_app.PendingIntent
android.app.SearchManager
android_app.SearchManager
android.app.WallpaperColors
android_app.WallpaperColors
android.app.WallpaperInfo
android_app.WallpaperInfo
android.app.WallpaperManager
android_app.WallpaperManager
android.bluetooth
android_bluetooth
android.bluetooth.BluetoothAdapter
android_bluetooth.BluetoothAdapter
android.bluetooth.BluetoothDevice
android_bluetooth.BluetoothDevice
android.bluetooth.BluetoothHeadset
android_bluetooth.BluetoothHeadset
android.bluetooth.BluetoothManager
android_bluetooth.BluetoothManager
android.bluetooth.le.BluetoothLeScanner
android_bluetooth.BluetoothLeScanner
android.bluetooth.le
android_bluetooth
android.content
android_content
android.content.ActivityNotFoundException
android_content.ActivityNotFoundException
android.content.ComponentName
android_content.ComponentName
android.content.ContentValues
android_content.ContentValues
android.content.Context
android_content.Context
android.content.Intent
android_content.Intent
android.content.IntentFilter
android_content.IntentFilter
android.content.SharedPreferences
android_content.SharedPreferences
android.database
android_database
android.database.Cursor
android_database.Cursor
android.database.CursorIndexOutOfBoundsException
android_database.CursorIndexOutOfBoundsException
android.database.DatabaseUtils
android_database.DatabaseUtils
android.database.MatrixCursor
android_database.MatrixCursor
android.database.SQLException
android_database.SQLException
android.graphics
android_graphics
android.graphics.Bitmap
android_graphics.Bitmap
android.graphics.Color
dart-ui.Color
android.graphics.Point
android_graphics.Point
android.graphics.PointF
android_graphics.PointF
android.graphics.drawable.Icon
flutter.Icon
android.hardware
android_hardware
android.hardware.Sensor
android_hardware.Sensor
android.hardware.SensorEvent
android_hardware.SensorEvent
android.hardware.SensorEventListener
android_hardware.SensorEventListener
android.hardware.SensorManager
android_hardware.SensorManager
android.location
android_location
android.location.Location
android_location.Location
android.media
android_media
android.media.FaceDetector
android_media.FaceDetector
android.media.FaceDetector.Face
android_media.Face
android.net
android_net
android.nfc
android_nfc
android.os
android_os
android.os.BatteryManager
android_os.BatteryManager
android.os.Build
android_os.Build
android.os.Bundle
android_os.Bundle
android.os.Environment
android_os.Environment
android.os.HardwarePropertiesManager
android_os.HardwarePropertiesManager
android.os.Parcel
android_os.Parcel
android.os.Parcelable
android_os.Parcelable
android.os.PowerManager
android_os.PowerManager
android.os.Process
android_os.Process
android.os.StatFs
android_os.StatFs
android.os.SystemClock
android_os.SystemClock
android.os.UserManager
android_os.UserManager
android.os.VibrationEffect
android_os.VibrationEffect
android.os.Vibrator
android_os.Vibrator
android.provider
android_provider
android.security
android_security
android.speech
android_speech
android.telephony
android_telephony
android.view
android_view
java.util.Locale
dart-ui.Locale
See Also
The win32 package provides bindings to
the most common Win32 APIs.