Отправка сообщения через bluetooth с xamarin android в uwp для windows 10 iot core - PullRequest
0 голосов
/ 27 сентября 2019

Я хочу отправить текст из моего приложения xamarin для Android в мое приложение uwp на raspberry pi 3. Также я хочу использовать программную панель из моего телефона Android в качестве удаленной клавиатуры для системы показателей.

The uwpПриложение - это система показателей, которую я сделал 2 года назад и до сих пор использую.Теперь я хочу разработать приложение для Android, которое я могу использовать в качестве пульта дистанционного управления для системы показателей.

Соединение и соединение по Bluetooth в порядке, но я борюсь с отправкой строк в приложение uwp.

Я попробовал несколько примеров через Интернет, включая этот на этом сайте.

Соединение Bluetooth между Xamarin-Android и UWP

Я попробовал этот код, но некоторый код не был распознан Visual Studio, как этот

uint messageLength = reader.RReadUint ();

, также я попробовал этот примери это было очень близко

https://www.hackster.io/patricia2/bluetooth-remote-control-android-for-windows-iot-devices-ed502d

Но часть Android сделана в Android Studio Java, и я хочу сделать приложение с xamarin Android.Но я использовал uwp часть этого кода, а затем код андроида образца чатов xamarin.

https://docs.microsoft.com/en-us/samples/xamarin/monodroid-samples/bluetoothchat/

, но почему-то это не работает

этоЯ должен отправить сообщение в Android

void SendMessage(String message)
    {

        if (message.Length > 0)
        {
            var bytes = Encoding.ASCII.GetBytes(message);
            write(bytes)
        }
    }

public void Write(byte[] buffer)
        {
            try
            {
                outStream.Write(buffer, 0, buffer.Length);
            }
            catch (Java.IO.IOException e)
            {
                Log.Error(TAG, "Exception during write", e);
            }
        }

, и это то, что я сейчас использую, чтобы получить сообщение в UWP на Raspberry Pi с Windows 10 iot core.

while (true)
        {
            try
            {
                uint readLength = await reader.LoadAsync(sizeof(uint));

                if (readLength < sizeof(uint))
                {
                    remoteDisconnection = true;
                    break;
                }

                var currentLength = reader.ReadUInt32();

                readLength = await reader.LoadAsync(currentLength);

                if (readLength < currentLength)
                {
                    remoteDisconnection = true;
                    break;
                }
                string message = reader.ReadString(currentLength);

                Debug.Write("Received: " + message);
            }
            // Catch exception HRESULT_FROM_WIN32(ERROR_OPERATION_ABORTED).
            catch (Exception ex) when ((uint)ex.HResult == 0x800703E3)
            {
                Debug.Write("Client Disconnected Successfully");
                break;
            }
        }

ив этой строке я получаю сообщение об ошибке нехватки памяти

readLength = await reader.LoadAsync(currentLength);

Я надеюсь, что немного объяснил это, чтобы вы поняли, что мне нужно, и я надеюсь, что кто-то может помочь мне, пожалуйста.

isэто также возможно, когда соединение Bluetooth есть, что вы можете использовать softkeyboard на andoroid приложения, чтобы что-то типа в UWP приложения

...