繁体   English   中英

从Xamarin android中的第三方应用接收到安息后,将android应用置于前台

[英]Bring android app in foreground after receiving respose from third party app in xamarin android

如何在Xamarin Android中的Broadcast Receiver的OnReceive方法上接收一些数据时如何使用moveTaskToFront。

我的示例代码如下:

[BroadcastReceiver(Enabled = true, Exported = false)]
[IntentFilter(new[] { "android.intent.action.genius.pos.result" })]
public class MyBootReceiver : BroadcastReceiver
{

 [get: Android.Runtime.Register("getTaskId", "()I", "GetGetTaskIdHandler")]
 public virtual Int32 TaskId { get; }
 public PaymentResponse paymentResponse;

 public MyBootReceiver() // public constructor
 {
 }

    public override void OnReceive(Context context, Intent intent)
    {
        String result = intent.GetStringExtra("result");
        String description = intent.GetStringExtra("description");

        if (result != null && description != Defines.POSAction.InitiateKeyedEntry.ToString())
            paymentResponse = JsonConvert.DeserializeObject<PaymentResponse>(result);

        if (description != Defines.POSAction.InitiateKeyedEntry.ToString())
        {
            ActivityManager activityManager = (ActivityManager)context.GetSystemService(Context.ActivityService);
            activityManager.MoveTaskToFront(TaskId, MoveTaskFlags.WithHome);
        }
    }

    public void showResultDialog(String msg, Context context)
    {
        AlertDialog.Builder builder;
        builder = new AlertDialog.Builder(context);
        builder.SetTitle("Result").SetMessage(msg).Show();
    }
}

我在OnReceive方法中收到响应,但无法将我的应用程序置于前台。 我正在使用Intent来调用第三方应用程序进行付款。 第三方应用是Cayan Genius Mini。

请帮助我解决此问题。 我陷入了这个问题。

首先,您是否具有android.permission.REORDER_TASKS权限?

而且似乎TaskID属性中的主要问题,您可以检查它返回什么吗?

尝试使用MainActivity TaskID。

另外我还注意到您调用了类MyBootReceiver ,但它不是引导接收器=)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM