fix bluetooth device enumerate. (#281)

* fix bluetooth device enumerate.

* update README.md

* dart format.

* revert pubspec.yaml.

* fix analyzer.
This commit is contained in:
CloudWebRTC
2023-05-11 17:29:33 +08:00
committed by GitHub
parent bf07a91c98
commit 4f697ca867
7 changed files with 57 additions and 6 deletions
+26
View File
@@ -3,6 +3,7 @@ import 'package:flutter_svg/flutter_svg.dart';
import 'package:livekit_client/livekit_client.dart';
import 'package:livekit_example/widgets/text_field.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:permission_handler/permission_handler.dart';
import '../exts.dart';
import 'room.dart';
@@ -42,6 +43,9 @@ class _ConnectPageState extends State<ConnectPage> {
void initState() {
super.initState();
_readPrefs();
if (lkPlatformIs(PlatformType.android)) {
_checkPremissions();
}
}
@override
@@ -51,6 +55,28 @@ class _ConnectPageState extends State<ConnectPage> {
super.dispose();
}
Future<void> _checkPremissions() async {
var status = await Permission.bluetooth.request();
if (status.isPermanentlyDenied) {
print('Bluetooth Permission disabled');
}
status = await Permission.bluetoothConnect.request();
if (status.isPermanentlyDenied) {
print('Bluetooth Connect Permission disabled');
}
status = await Permission.camera.request();
if (status.isPermanentlyDenied) {
print('Camera Permission disabled');
}
status = await Permission.microphone.request();
if (status.isPermanentlyDenied) {
print('Microphone Permission disabled');
}
}
// Read saved URL and Token
Future<void> _readPrefs() async {
final prefs = await SharedPreferences.getInstance();
+2 -2
View File
@@ -276,6 +276,7 @@ class _ControlsWidgetState extends State<ControlsWidget> {
return [
PopupMenuItem<MediaDevice>(
value: null,
onTap: isMuted ? _enableAudio : _disableAudio,
child: const ListTile(
leading: Icon(
EvaIcons.micOff,
@@ -283,7 +284,6 @@ class _ControlsWidgetState extends State<ControlsWidget> {
),
title: Text('Mute Microphone'),
),
onTap: isMuted ? _enableAudio : _disableAudio,
),
if (_audioInputs != null)
..._audioInputs!.map((device) {
@@ -358,6 +358,7 @@ class _ControlsWidgetState extends State<ControlsWidget> {
return [
PopupMenuItem<MediaDevice>(
value: null,
onTap: _disableVideo,
child: const ListTile(
leading: Icon(
EvaIcons.videoOff,
@@ -365,7 +366,6 @@ class _ControlsWidgetState extends State<ControlsWidget> {
),
title: Text('Disable Camera'),
),
onTap: _disableVideo,
),
if (_videoInputs != null)
..._videoInputs!.map((device) {