Flutter直接拨打电话插件direct_call的使用
如何安装
Flutter
在 pubspec.yaml
文件中添加以下依赖:
dependencies:
flutter:
sdk: flutter
direct_call: 1.0.0
然后运行 flutter pub get
来获取依赖。
Android: 在 AndroidManifest.xml
中添加权限
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.CALL_PHONE" />
如何使用
以下是一个完整的示例代码,展示如何使用 direct_call
插件进行拨打电话,并监听通话状态。
示例代码
import 'package:direct_call/direct_call.dart'; // 导入direct_call插件
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp()); // 启动应用
}
class MyApp extends StatefulWidget {
const MyApp({super.key}); // 构造函数
[@override](/user/override)
State<MyApp> createState() => _MyAppState(); // 创建状态类
}
class _MyAppState extends State<MyApp> {
[@override](/user/override)
void initState() {
super.initState();
// 监听通话状态
DirectCall.stream.listen((event) {
switch (event.status) {
case PhoneStateStatus.CALL_STATE_IDLE: // 通话空闲状态
debugPrint("手机状态:通话结束:${event.callRecord}"); // 打印通话记录
case PhoneStateStatus.CALL_STATE_RINGING: // 来电状态
debugPrint("手机状态:来电话状态");
case PhoneStateStatus.CALL_STATE_OFFHOOK: // 正在接听或拨号状态
debugPrint("手机状态:正在接听电话/拨号");
default:
debugPrint("手机状态,非通话相关");
}
});
}
[@override](/user/override)
void deactivate() {
super.deactivate();
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'), // 设置标题
),
body: Center(
child: ElevatedButton( // 按钮用于拨打电话
onPressed: () async {
final result = await DirectCall.makePhoneCall('10010', 0); // 拨打10010号码
debugPrint("result:$result"); // 打印拨打电话的结果
},
child: const Text('打电话'), // 按钮文字
),
),
),
);
}
}
更多关于Flutter直接拨打电话插件direct_call的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复