c# - 将 System.IO.Stream 转换为 java.io.InputStream

标签 c# android xamarin.android

我正在使用 C# 中的 Xamarin Android 项目的库。我想要实例化的对象需要两个类型为 java.io.InputStream 和 java.io.OutputStream 的参数。 BluetoothSocket 的输入和输出流的类型为 System.Io,因此转换会返回错误。类似于下面的代码

public static void Connect(string address)
    {
        BluetoothDevice device = mBtAdapter.GetRemoteDevice(address);
        BluetoothSocket socket = device.CreateRfcommSocketToServiceRecord(SPP_UUID);
        socket.Connect();
        mBtSocket = socket;

        java.io.InputStream input = socket.InputStream;//cannot implicitly convert
        java.io.OutputStream output = socket.OutputStream;//cannot implicitly convert
        cmd = new DP25ROU(input, output);
    }

是否有有效的方法将输入/输出转换为 java.io 各自的对应部分?

最佳答案

是的,您可以通过以下方式访问InputStreamOutputStream:

Java.IO.InputStream input = ((Android.Runtime.InputStreamInvoker)socket.InputStream).BaseInputStream;

Java.IO.OutputStream output = ((Android.Runtime.OutputStreamInvoker)socket.OutputStream).BaseOutputStream;

关于c# - 将 System.IO.Stream 转换为 java.io.InputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45562254/

相关文章:

android - PhoneGap(Android)支持不同分辨率

java - Android SpongyCaSTLe ECDH secp384r1 key 大小不正确

android - react native 错误:undefined is not a function (evaluating 'this._pressRow()' )

Xamarin studio 更新导致 android 应用程序崩溃

c# - 如何在 Xamarin.Android 中正确编写自定义 UncaughtExceptionHandler

c# - 加入不同对象的列表

c# 字符串性能 - 比较字符串文本或字符串长度哪个更快

C#:向项目添加启动画面的理想方法是什么?

xamarin - 在事件中设置自定义结果代码

c# 创建日志文件的最佳方法