在 OnActivityResult 中处理 Result.Canceled

Handling Result.Canceled in OnActivityResult

我想创建一个要求打开蓝牙直到用户打开的功能。 我有要求用户启用蓝牙的代码:

 var enableBluetooth = new Intent(BluetoothAdapter.ActionRequestEnable);
                    StartActivityForResult(enableBluetooth,1);

我想使用 OnActivityResult 查看结果:

protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);
            if (requestCode  == 1)
            {
                if (resultCode == Result.Ok)
                {
                    Console.WriteLine(" Ok");
                }
                else if (resultCode == Result.Canceled)
                {
                    Console.WriteLine("Canceled");
                }
                else Console.WriteLine("Other Error");
            }else Console.WriteLine("Wrong request code");
        }

如果我点击确定,我可以在输出中看到 window 好的,但是当我按下取消时,任何评论都不会显示。

参考 android 开发者:

https://developer.android.com/training/basics/intents/result 和蓝牙聊天:https://github.com/googlesamples/android-BluetoothChat

尝试将此作为 Activity 结果:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 1) {
            if (resultCode == RESULT_OK)
                Toast.makeText(getActivity(), "OK",Toast.LENGTH_SHORT).show();
            else 
                Toast.makeText(getActivity(), "NOK", Toast.LENGTH_SHORT).show();
        }
}

在 Xamarin 上遵循 chatexample: https://github.com/googlesamples/android-BluetoothChat

onActivity结果应如下所示:

public override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
     switch (requestCode)
     {
          case 1:
              if (Result.Ok == resultCode)
              {
                   Toast.makeText(getActivity(), "OK",Toast.LENGTH_SHORT).show();
              }
              else
              {
                   Toast.makeText(getActivity(), "NOK",Toast.LENGTH_SHORT).show();
              }
              break;
       }
}