将IntPtr蓝牙套接字实例转换为本机monodroid BlueToothSocket?

时间:2012-06-05 10:26:34

标签: android java-native-interface xamarin.android

我正在使用JNI将IntPtr用于蓝牙连接方法。代码是:

IntPtr createRfcommSocket = JNIEnv.GetMethodID(device.Class.Handle, "createRfcommSocket", "(I)Landroid/bluetooth/BluetoothSocket;");
IntPtr socket = JNIEnv.CallObjectMethod(device.Handle, createRfcommSocket, new JValue(1));

无论如何将IntPtr套接字转换为原生monodroid BlueToothSocket?

我需要这个来为创建蓝牙套接字方法提供单个接口。

1 个答案:

答案 0 :(得分:0)

  

无论如何将IntPtr套接字转换为原生monodroid BlueToothSocket?

如果“原生monodroid BlueToothSocket”是指BluetoothSocket,那么您使用Java.Lang.Object.GetObject<T>()方法:

var msocket = Java.Lang.Object.GetObject<Android.Bluetooth.BluetoothSocket>(socket, JniHandleOwnership.TransferLocalRef);