A Flutter plugin to get a headset event.
This is a clone of headset_event, but with fix on swift errors and bluetooth connection events for Android and iOS
Migrated to AndroidX
Platform | Physical Headset | Bluetooth |
---|---|---|
iOS | ✅ | ✅ |
Android | ✅ | ✅ |
To use this plugin, add headset_connection_event
as a dependency in your pubspec.yaml file.
// Import package
import 'package:headset_connection_event/headset_event.dart';
// Instantiate it
HeadsetEvent headsetPlugin = new HeadsetEvent();
HeadsetState headsetEvent;
/// if headset is plugged
headsetPlugin.getCurrentState.then((_val){
setState(() {
headsetEvent = _val;
});
});
/// Detect the moment headset is plugged or unplugged
headsetPlugin.setListener((_val) {
setState(() {
headsetEvent = _val;
});
});
Update compileSdkVersion
to 33 in your build.properties
under app
directory
Make the following changes to your project's main AndroidManifest.xml
file:
<activity...
<!-- ADD THIS BELOW "ACTIVITY" -->
android:exported="true"
<!-- ADD THIS "RECEIVER" Element Before </application> -->
<receiver android:name="flutter.moum.headset_event.HeadsetBroadcastReceiver"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.HEADSET_PLUG" />
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>
</application>
</manifest>
Please see example project AndroidManifest.xml for more information.
Android 12 requires bluetoothConnect permission. You may request it using the following:
HeadsetPlugin.requestPermission();