OnActivityResult не работает в xamarin - PullRequest
0 голосов
/ 17 февраля 2020

я пытаюсь написать приложение с подключением Bluetooth, когда я получил запрос о включении Bluetooth, я должен выбрать, да или нет, и когда я делаю это, он должен показать небольшое сообщение, как тост, но он не показывает, я пытался Чтобы сделать тост внутри функции без, если все еще не работает, пожалуйста, помогите

        BluetoothAdapter bluetoothAdapter = BluetoothAdapter.DefaultAdapter;

        if (bluetoothAdapter == null)
        {
            Toast.MakeText(Application.Context, "xxx ", ToastLength.Short).Show();
        }

        if (!bluetoothAdapter.IsEnabled)
        {
            Intent wlaczbt = new Intent(BluetoothAdapter.ActionRequestEnable);
            StartActivityForResult(wlaczbt, REQUEST_ENABLE_BT);
            //OnActivityResult(REQUEST_ENABLE_BT, Result.Ok, wlaczbt);
        }
        else
        {
            Toast.MakeText(Application.Context, "xxx ", ToastLength.Short).Show();
        }

OnActivity:

public void OnActivityResult(int requestCode,int resultCode,Intent data)
{
    base.OnActivityResult(requestCode, Result.Ok , data);
    Toast.MakeText(Application.Context, "xx ", ToastLength.Short).Show();
    if (requestCode == REQUEST_ENABLE_BT)
    {
        if(resultCode.Equals(Result.Ok))
        {
            Toast.MakeText(Application.Context, "xx ",ToastLength.Short).Show();
        }
        else
        {
            Toast.MakeText(Application.Context, "xx ", ToastLength.Short).Show();
        }
    }
}

1 Ответ

1 голос
/ 18 февраля 2020

Я пишу демо, про это работаю как обычно. Здесь работает GIF. enter image description here

Вот мой код.

      [Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
    public class MainActivity : AppCompatActivity
    {
        Button button1;
        int DISCOVERABLE_DURATION = 300;
        int DISCOVERABLE_BT_REQUEST_CODE = 1001;
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.activity_main);
             button1 = FindViewById<Button>(Resource.Id.button1);
            button1.Click += Button1_Click;
        }

        private void Button1_Click(object sender, System.EventArgs e)
        {
            Intent discoverableIntent = new Intent(BluetoothAdapter.ActionRequestDiscoverable);
            discoverableIntent.PutExtra(BluetoothAdapter.ExtraDiscoverableDuration, DISCOVERABLE_DURATION);
            StartActivityForResult(discoverableIntent, DISCOVERABLE_BT_REQUEST_CODE);
        }

        protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
        {
            Toast.MakeText(Application.Context, "xx ", ToastLength.Short).Show();
            if (requestCode == DISCOVERABLE_BT_REQUEST_CODE)
            {
                if (resultCode.Equals(Result.Ok))
                {
                    Toast.MakeText(Application.Context, "xx ", ToastLength.Short).Show();
                }
                else
                {
                    Toast.MakeText(Application.Context, "xx ", ToastLength.Short).Show();
                }
            }
            //base.OnActivityResult(requestCode, resultCode, data);
        }
        public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
        {
            Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);

            base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }
}

Я добавляю два разрешения в AndroidManifest. xml.

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

Вот мое демо, вы можете скачать его.

https://github.com/851265601/XAndroidBlueTooth

Это полезная статья об этом, вы можете обратиться к ней. https://www.codeproject.com/Articles/814814/Android-Connectivity

...