Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 一种在flutter中将最小化的应用程序放到前台的方法_Android_Ios_Flutter_Mobile - Fatal编程技术网

Android 一种在flutter中将最小化的应用程序放到前台的方法

Android 一种在flutter中将最小化的应用程序放到前台的方法,android,ios,flutter,mobile,Android,Ios,Flutter,Mobile,我有一个包含WebRTC视频通话的Flitter应用程序。在flatter中,有没有一种方法可以让应用程序在收到调用时显示自己或最大化自己 所以我终于能够解决它了,通常有两种情况,如果应用程序在后台,如果它被终止 网间网操作系统 当应用程序进入后台时,iOS会在几秒钟后立即将其关闭,因此颤振被断开,我们必须使用推送通知 在iOS中,你不能将一个应用程序带到前台,因为它违反了苹果的政策,而且没有公开的api。 唯一的例外是电话,这是我的情况。我不得不使用apple VoIP通知,有两个单独的颤振

我有一个包含WebRTC视频通话的Flitter应用程序。在flatter中,有没有一种方法可以让应用程序在收到调用时显示自己或最大化自己

所以我终于能够解决它了,通常有两种情况,如果应用程序在后台,如果它被终止

网间网操作系统 当应用程序进入后台时,iOS会在几秒钟后立即将其关闭,因此颤振被断开,我们必须使用推送通知

在iOS中,你不能将一个应用程序带到前台,因为它违反了苹果的政策,而且没有公开的api。

唯一的例外是电话,这是我的情况。我不得不使用apple VoIP通知,有两个单独的颤振包来处理这个问题 及

安卓: 在应用程序终止的情况下,我必须分叉fire_颤振代码才能添加代码。 当与呼叫相关的通知到达时,通过调用应用程序的相同启动意图来显示主要活动

如果应用程序在后台,则颤振将连接到信号服务,因此我不使用FCM。我向Flatter发送FCM消息以接收呼叫。在flutter方面,我写了一个packge,当从flutter调用应用程序时,它会把应用程序带到前台

这真的很简单。您从dart调用一个静态函数,它将被带到前台

关于实现的旁注:
  • 在响应voip通知时,您应该在收到通知时立即显示callkit。 无论出于何种原因(即使是异常情况,或停止调试器几秒钟),3次未能使用呼叫套件,客户端设备上的iOS将开始忽略您的voip通知,这应该立即生效。苹果的支持人员在某处说(我不记得在哪里):如果你想从你的服务器上获取一些数据,只需显示一个虚拟的呼叫工具包,然后当响应到达时,你可以用呼叫方信息更新它。当系统禁止我收到Voip通知时,我不得不在我的iPhone 6上重置出厂设置以取消我的应用程序的绑定(如果你找到其他方法,请共享!) 如果你被禁止,你可以使用Mac上的控制台来确保

  • 我无法将firebase用于voip通知,因为它需要客户端证书。我必须使用相同的WebRtc信令NodeJS服务器

  • 在iPhone上接听电话将打开你的Flitter应用程序,因此你必须尽快接听电话,否则用户将看到你的主屏幕而不是来电者的声音

  • 一些android厂商,如Xaiomi,会阻止你的应用程序服务将活动带到前台,因此你必须告诉用户:转到设置,启用一些设置,这因厂商而异

  • 安卓10(Q)对从后台服务运行活动也有一些限制

  • 在android中从后台启动相同的启动意图将重新启动活动,而不仅仅是启动活动,我必须在
    AndroidManifest.xml
    中使用
    launchMode
    ,以使其正常工作


一样!你有办法吗?直到现在,没有!当用户在通话中转到另一个应用程序(例如打开浏览器)时,这会使你的应用程序进入后台模式,你的WebRTC连接是否仍然保持打开状态?是的,它保持打开状态,但我没有测试它,我无法在Flatter中启用pip功能。但你说“当应用程序转到后台时,iOS会在几秒钟后立即将其关闭”。iOS是否将WebRTC通信识别为VoIP呼叫?这样,当你将应用程序移动到后台时,绿色的呼叫状态栏会显示在屏幕顶部?哦,我想你是在问android,但是是的,在iOS中,如果你使用Flitter呼叫套件包,当它移动到后台时,它不会被杀死,它会像任何其他使用VoIP的应用程序一样工作。顶部有绿色条。在您的
custombasemessagingservice
中,我看到您发送了一个
denyIntent
和参数。问题是:弗利特怎样才能得到邓恩的支持?谢谢你!