59 lines
1.5 KiB
Dart
59 lines
1.5 KiB
Dart
import 'package:flutter/material.dart';
|
||
import 'package:permission_handler/permission_handler.dart';
|
||
import 'package:provider/provider.dart';
|
||
import 'package:ai_chat_assistant/app.dart';
|
||
import 'package:ai_chat_assistant/services/message_service.dart';
|
||
import 'package:ai_chat_assistant/enums/vehicle_command_type.dart';
|
||
|
||
void main() async {
|
||
WidgetsFlutterBinding.ensureInitialized();
|
||
|
||
// 请求麦克风权限
|
||
if (!await Permission.microphone.isGranted) {
|
||
await Permission.microphone.request();
|
||
}
|
||
|
||
// 初始化 AI Chat Assistant,注册车控命令回调
|
||
ChatAssistantApp.initialize(
|
||
commandCallback: (VehicleCommandType type, Map<String, dynamic>? params) async {
|
||
// 这里是示例的车控命令处理逻辑
|
||
print('收到车控命令: $type, 参数: $params');
|
||
return Future.value((true, {'message': '命令已执行'}));
|
||
},
|
||
);
|
||
|
||
runApp(
|
||
ChangeNotifierProvider(
|
||
create: (_) => MessageService(),
|
||
child: const MyApp(),
|
||
),
|
||
);
|
||
}
|
||
|
||
class MyApp extends StatelessWidget {
|
||
const MyApp({super.key});
|
||
|
||
@override
|
||
Widget build(BuildContext context) {
|
||
return MaterialApp(
|
||
title: 'AI Chat Assistant Example',
|
||
theme: ThemeData(
|
||
primarySwatch: Colors.blue,
|
||
useMaterial3: true,
|
||
),
|
||
home: const ExampleHomePage(),
|
||
);
|
||
}
|
||
}
|
||
|
||
class ExampleHomePage extends StatelessWidget {
|
||
const ExampleHomePage({super.key});
|
||
|
||
@override
|
||
Widget build(BuildContext context) {
|
||
return const Scaffold(
|
||
body: ChatAssistantApp(),
|
||
);
|
||
}
|
||
}
|