【问题标题】:How to end GSM call programmatically on Android 10如何在 Android 10 上以编程方式结束 GSM 通话
【发布时间】:2020-06-18 10:43:33
【问题描述】:

我们开发了一款能够结束 GSM 通话的 Android 应用。 我们多年来一直使用这个解决方案: end incoming call programmatically

不幸的是,在 Android 10 上,此解决方案失败了。 我找不到任何其他实际适用于 Android 10 的解决方案。 有什么建议吗?

【问题讨论】:

    标签: android phone-call android-10.0


    【解决方案1】:

    可以在 Android 10 上停止 GSM 通话。 下一个代码在 Xamarin Android API 级别 27 中使用反射。

    第一次申请许可:

    // Check permission AnswerPhoneCalls
    if (ContextCompat.CheckSelfPermission(context, Android.Manifest.Permission.AnswerPhoneCalls) != (int)Permission.Granted)
            {
                activity?.RunOnUiThread(() =>
                    ActivityCompat.RequestPermissions(activity, new string[1] { Android.Manifest.Permission.AnswerPhoneCalls }, 0));
            }
    

    然后通过以下方式停止 GSM 通话:

    TelecomManager telecomManager = (TelecomManager)activity.GetSystemService(Context.TelecomService);
                var endcall = telecomManager.Class.GetDeclaredMethod("endCall");
                endcall.Accessible = true;
                endcall.Invoke(telecomManager);
    

    【讨论】:

    • 由于反射被阻止,无法在 android 11 中工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多