如何以xamarin形式获取意图活动结果

2023-12-04

我正在尝试使用依赖项服务来启动在我的 xamarin 表单应用程序中启用 BT 的意图。但我发现很难将结果返回到 xamarin 形式。是否有任何机制可以将活动结果通知返回到表单应用程序。 在形式上,

DependencyService.Get<IBluetoothHandler>().EnableBluetooth();

在安卓中,

Activity activity = Forms.Context as Activity;
Intent intent = new Intent(BluetoothAdapter.ActionRequestEnable);
activity.StartActivityForResult(intent, 1);

我怎样才能把这个活动的结果转化为表格?

Thanks


您可以覆盖OnActivityResult方法在你的MainActivity在你的安卓项目中。 Xamarin.Forms 整个应用程序仅使用一项活动(在幕后)。所以就用这个吧。

要通知您的页面(或 PCL/Forms 项目中的另一个类),请使用消息中心由 Xamarin.Forms 提供。

这是一个例子:

您的 MainActivity(android 项目)中的方法:

protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
    // Send trough the messaging sender (maybe someone subscribes to it)
    MessagingCenter.Send(
        new ActivityResultMessage {RequestCode = requestCode, ResultCode = resultCode, Data = data}, ActivityResultMessage.Key);
}

然后你的消息传递类:

public class ActivityResultMessage
{
    public static string Key = "arm";

    public int RequestCode { get; set; }

    public object ResultCode { get; set; }

    public object Data { get; set; }
}

然后在类中使用以下代码来处理结果:

// Subscribe to the onactivityresult-message
MessagingCenter.Subscribe<ActivityResultMessage>(this, ActivityResultMessage.Key, (sender) =>
{
    // do some magic =)
});

请阅读有关消息中心的内容(上面提供的链接),以了解背后的内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何以xamarin形式获取意图活动结果 的相关文章

随机推荐