![](/img/trans.png)
[英]how can I use flutter_phone_direct_caller packages for real
[英]How can I make a direct PHONE CALL in Flutter
我需要在 flutter 中直接撥打電話,但它只是打開電話應用程序撥號器。
沒有直接打電話。
事實上,我也嘗試使用url_launcher
包來完成這項任務,但得到的結果相同。
_launchURL() async {
SimplePermissions.requestPermission(Permission.CallPhone)
.then((state) async {
if (state == PermissionStatus.authorized) {
String a = Uri.encodeFull("#");
String url = 'tel:*123' + a;
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'Could not launch $url';
}
}
});}
有沒有人解決過這個問題?
免責聲明:插件作者在這里。
自 Android API 級別 26 起,公開了方法sendUssdRequest以發出靜默 USSD 請求。
我制作了一個名為ussd_service的 Flutter 插件,以便能夠在 Flutter 應用程序中輕松地從 dart 訪問它。 它可以按以下方式使用:
import 'package:ussd_service/ussd_service.dart';
makeMyRequest() async {
int subscriptionId = 1; // sim card subscription Id
String code = "*21#"; // ussd code payload
try {
String ussdSuccessMessage = await UssdService.makeRequest(subscriptionId, code);
print("succes! message: $ussdSuccessMessage");
} on PlatformException catch (e) {
print("error! code: ${e.code} - message: ${e.message}");
}
};
makeMyRequest();
希望這可以幫助! 如果您有任何問題,請在Github repo的問題上告訴我。
您需要對特殊字符使用 URL 編碼。
像這樣:
launch("tel:" + Uri.encodeComponent('*123#'));
為此,我制作了一個名為flutter_phone_direct_caller的插件。
你可以像這樣使用它:
import 'package:flutter/material.dart';
import 'package:flutter_phone_direct_caller/flutter_phone_direct_caller.dart';
void main() {
runApp(Scaffold(
body: Center(
child: RaisedButton(
onPressed: _callNumber,
child: Text('Call Number'),
),
),
));
}
_callNumber() async{
const number = '08592119XXXX'; //set the number here
bool res = await FlutterPhoneDirectCaller.callNumber(number);
}
希望它可以幫助某人。
將這些包添加到您的依賴項中:
android_intent_plus: ^2.0.0
permission_handler: ^8.1.4+2
將它們導入到你的.dart 文件中:
import 'package:android_intent_plus/android_intent.dart';
import 'package:permission_handler/permission_handler.dart';
在您的main()
函數中請求電話許可:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Permission.phone.request();
runApp(const MyApp());
}
最后,您可以像這樣直接撥打電話:
AndroidIntent intent = const AndroidIntent(
action: 'android.intent.action.CALL',
data: 'tel:2125551212',
);
await intent.launch();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.