我有一个在某些情况下可以拨打电话的应用程序(此逻辑有效)。 但是前段时间,我发现在装有Android 4.4的设备上存在问题。
当我的应用在后台和在前景中运行时,其他应用(例如Chrome)无法拨打电话。恢复我的应用程序后,它将启动拨号程序。
如果我仅在后台使用的应用程序像超级按钮一样。
其他版本运行良好(在android 5.1.1、7、8上进行了测试),只有4.4版本有问题。
检查了ADM中发生的情况,似乎我的意图没有在后台运行的应用程序在前景运行,而其他应用程序在前景运行。
我认为这是某种限制,但是我没有找到任何证明。
这是我的通话代码
public void Call(string phoneNumber)
{
var intent = new Intent();
intent.SetData(Android.Net.Uri.Parse("tel:" + Uri.EscapeDataString(phoneNumber)));
intent.SetAction(Intent.ActionCall);
intent.SetFlags(ActivityFlags.FromBackground);
if (Build.VERSION.SdkInt < BuildVersionCodes.Lollipop)
intent.SetPackage("com.android.phone");
else
intent.SetPackage("com.android.server.telecom");
getContext.StartActivity(intent);
}
为什么有人会这样?