Как отправить DTMF программно после совершения звонка с помощью Flutter - PullRequest
0 голосов
/ 06 января 2020

Я могу сделать телефонный звонок, вызвав приложение системного телефона и ПОДКЛЮЧИТЬ ВЫЗОВ с помощью приложения Flutter.

Вот что вы сделали:

  1. pubspe c .yaml добавить пакет:
  intent:
main.dart:
import 'package:flutter/material.dart';
import 'package:intent/intent.dart' as android_intent;
import 'package:intent/action.dart' as android_action;

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);


  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {

  @override
  Widget build(BuildContext context) {
    return (Scaffold(
      body: Center(
        child: RaisedButton(
                 onPressed: _launchURL,
                 child: Text('Dial a number'),
               )
      ),
    ));
  }
}


_launchURL() async {
  // Replace 12345678 with your tel. no.

  android_intent.Intent()
    ..setAction(android_action.Action.ACTION_CALL)
    ..setData(Uri(scheme: "tel", path: "12345678"))
    ..startActivity().catchError((e) => print(e));
}

Затем, после запуска этого приложения в PhoneA и нажатия кнопки «Набрать номер», откроется приложение System Phone и позвонит на тел. , № 12345678.

Через несколько секунд вызов будет установлен, и я хочу отправить тоны DTMF. Я попытался воспроизвести тоны DTMF, используя другой пакет флаттера: flutter_dtmf, и тоны воспроизводятся (я слышу это), но принимающая сторона не получает их. (Я думаю, причина в том, что этот пакет воспроизводит только тоны DTMF, но не передает тоны DTMF через приложение System Phone)

Чтобы обойти это, я использую другой мобильный телефон PhoneB, откройте приложение System Phone и нажмите на цифровую кнопку, поднесите динамик PhoneB к микрофону PhoneA, и принимающая сторона сможет получать тоны DTMF.

Итак, как мне этого добиться без использования PhoneB?

...