如何在 Xamarin Android 中使用 ActivityResultContract?

2024-01-07

我试图在 Xamarin 中使用 AndroidX 的 ActivityResultContract,但找不到任何相关文档或信息。我已经在本机android中实现了ActivityResultLauncher-ActivityResultContract,基于它们创建了一个带有API的.aar并尝试构建一个DLL。但在 Xamarin 中不能做同样的事情。例如。 Xamarin Android 中的 ActivityResultContract 是非 grneric 类型,而不是本机类型。请指出我正确的方向。


我已经能够让其中一些工作了。例如开始活动获取结果

宣布成为会员 ActivityResultLauncher arlStartForResult; 然后在OnCreate()中

arlStartForResult = RegisterForActivityResult(new ActivityResultContracts.StartActivityForResult(), this);

立即“this”将变成红色波浪线,因此让 VS 将 ActivityResultCallback 添加到您的类中并生成空的

public void OnActivityResult(Object p0)
{

}

这就是事情变得混乱的地方,因为您必须强制转换 Java.Lang.Object。

以下是 Google 登录的示例。

public void OnActivityResult(Object p0)
        {
            // Introduced AndroidX.AppCompat 1.2.0.7 and AndroidX.Fragment 1.3.0.1 
            ActivityResult result;

            if (p0 is ActivityResult)
            {
                result = p0 as ActivityResult;

                if (result.ResultCode == (int)Android.App.Result.Ok)
                {
                    Android.Gms.Tasks.Task task = GoogleSignIn.GetSignedInAccountFromIntent(result.Data);
                    GoogleSignInAccount account = task.Result as GoogleSignInAccount;

                    if (!string.IsNullOrEmpty(account.Email))
                        FirebaseAuthWithGoogle(account.IdToken);
                    else
                        UpdateUI(null);
                }
            }
        }

我没有成功获得权限,例如

arlRequestPermission = RegisterForActivityResult(new ActivityResultContracts.RequestPermission(), this);

我想这需要更多的绑定工作。我想现在最好回到之前的 Activity 和 Fragment 核心部分。

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

如何在 Xamarin Android 中使用 ActivityResultContract? 的相关文章

随机推荐

  • Ruby 中对数组中的集合进行平均的最佳方法是什么?

    给定以下简单数据集 对 0 25 53 和 80 组的值进行平均的最佳方法是什么 0 148 5 0 146 5 0 148 6 0 202 3 25 145 7 25 145 5 25 147 4 25 147 3 53 150 4 53
  • 有哪些大型网站正在使用 Amazon EC2 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在寻找托管在 Amazon EC2 S3 Cloudfront 等上的大型网站的示例 我在一家公司工作 我们运行一个网站 该网站每月在运行 10
  • Delphi中如何检测打印机型号?

    当我插入 HP Laserjet 3015 时 Windows 会检测到正确的型号 然后尝试安装适当的驱动程序 如何检测所连接打印机的型号 我不想使用已安装打印机的列表 因为 Zebra 打印机可以使用通用 纯文本驱动程序进行安装 我是一名
  • OAuth (Instagram) 无需刷新

    我有一个单页 JavaScript 应用程序 我想知道是否可以在不刷新页面的情况下对 Instagram 上的用户进行身份验证 我想尝试使用 javascript 执行类似于 Facebook 连接的操作 其中 Facebook 对话框在弹
  • 为什么编译器需要.java后缀而解释器不需要.class后缀?

    编译 Foo java javac Foo java 运行程序 java Foo 为什么编译器需要 java后缀但解释器不需要 class suffix 正如其他几个答案所解释的那样 Java 编译器采用文件名作为参数 而解释器采用类名 所
  • Android 操作栏向上导航按钮在设备上不起作用

    Action Bar up navigation button works fine in emulator but does not work in device can any one help me out 主要活动 Override
  • 从android中的服务调用BroadCastReceiver来更新Fragment中的UI?

    我想更新UI of a fragment from service 我在用GCM用于发送消息 我有这个课程GCM public class GcmIntentService extends IntentService public GcmI
  • 来自阻塞(具有重叠 I/O 属性)Winsock2 调用的意外 WSA_IO_PENDING

    简洁版本 使用阻塞套接字 API 调用时 我收到 WSA IO PENDING 我该如何处理 插座有重叠 I O 属性 https support microsoft com en gb help 181611 socket overlap
  • qtcreator 在“停止”时发送的信号

    我正在 Linux 上工作 当我使用 Qt 创建者 IDE 上的 停止 按钮关闭应用程序时 我意识到我的应用程序留下了守护进程 我想处理这些情况 以便应用程序以与关闭主窗口相同的方式关闭 要编写处理程序 我需要知道它对应于哪些信号 深入研究
  • 使用 rowindex 从 JTable 检索行数据

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何从 a 中检索行数据JTable
  • Jetpack Compose 应用程序无法在 AVD 上启动

    我已经使用编写了一个示例Jetpack Compose然后每当我尝试Install它在一个AVD gradle 构建Project成功 但内置应用程序未启动 关于工具和代码的一切都很好 甚至Preview shows UI好吧 如果我自己手
  • 使用ajax保存wordpress设置api选项,

    我已经和这个问题斗争了一段时间了 我有一个主题的选项页面 并注册了一个选项 我一直试图在每次用户按下保存按钮时通过ajax更新选项 这是我的代码 JS function save main options ajax main options
  • MySQL MATCH AGAINST 不起作用

    我实际上正在开发一个网站 其中有两个几乎相同的表 其中 MATCH AGAINST 在一个表上有效 但在另一个表上无效 为了找出为什么我试图将其简化为一个简单的问题 让我们制作一个简单的表格 但事实并非如此 我正在使用 phpMyAdmin
  • typeid(T) 是在运行时还是编译时评估?

    我无法在任何地方找到这个看似简单的问题的答案 以下 C 函数是否使用 RTTI 当然不必 但我想知道是否可以保证 typeid 将在编译时确定 template
  • WaitAndRetryPolicy 与 BulkheadPolicy 结合,优先重试。是否可以?

    我正在评估Polly https github com App vNext Polly 库的功能和灵活性方面 作为评估过程的一部分 我试图将WaitAndRetryPolicy与BulkheadPolicy政策 以实现弹性和节流的结合 问题
  • 使用 Jackson 解析 Java 中的 JSON 子集

    给定一个 Json 是否可以使用 Jackson 只解析出消息的一部分 假设我感兴趣的数据埋藏在深层的字段层次结构中 并且我根本不关心为每个类创建 DTO 类 给定一个非常简单的场景 我想对 Telephone 类进行建模 而不了解其之前的
  • CUDA 错误:调用 cublasCreate(handle) 时出现 CUBLAS_STATUS_ALLOC_FAILED

    当我在 Google Colab 中运行 PyTorch 深度学习模型时 出现以下错误 usr local lib python3 6 dist packages torch nn functional py in linear input
  • 如何使用 Selenium 和 Python 在信用卡号字段中输入日期?

    我正在尝试制作一个脚本来自动在 Shopify 网站上结帐 当我尝试填写要求信用卡的字段时 硒不允许我将密钥发送到该字段中 并表示该元素不可交互 我已经尝试单击它 但它仍然不允许我输入信息 有人知道该怎么办吗 driver find ele
  • Gradle 与编译器

    据我了解 Gradle 是 Android Studio 的包生成器 它在构建时整理与项目相关的资源 源代码和配置文件 但它也会编译代码吗 或者它将资源和依赖项转换为某种形式的可编译代码 然后将其发送给编译器 从我一直在做的所有阅读来看 这
  • 如何在 Xamarin Android 中使用 ActivityResultContract?

    我试图在 Xamarin 中使用 AndroidX 的 ActivityResultContract 但找不到任何相关文档或信息 我已经在本机android中实现了ActivityResultLauncher ActivityResultC