Я пытаюсь связать Nordi c библиотека полупроводниковых элементов android ble с формами ксамарина.
Я исправил все ошибки сборки в библиотеке, когда я пытаюсь использовать В библиотеке появляется больше ошибок.
Error:
Severity Code Description Project File Line Source Suppression State
Error error: BleManagerGattCallback has protected access in BleManager
extends no.nordicsemi.android.ble.BleManager.BleManagerGattCallback BleTester.Android C:\Users\a\source\repos\a Apps\Libraries\Bluetooth\BleTester\BleTester.Android\obj\Debug\MonoAndroid90\android\src\md5f9d62554e6ef444a8267557217d83b8b\MyManagerGattCallback.java 5 Build
Severity Code Description Project File Line Source Suppression State
Error error: cannot find symbol
if (getClass () == MyManagerGattCallback.class)
symbol: method getClass()
location: class MyManagerGattCallback BleTester.Android C:\Users\a\source\repos\a Apps\Libraries\Bluetooth\BleTester\BleTester.Android\obj\Debug\MonoAndroid90\android\src\md5f9d62554e6ef444a8267557217d83b8b\MyManagerGattCallback.java 23 Build
MyManagerGattCallback. java
package md5f9d62554e6ef444a8267557217d83b8b;
public class MyManagerGattCallback
extends no.nordicsemi.android.ble.BleManager.BleManagerGattCallback
implements
mono.android.IGCUserPeer
{
/** @hide */
public static final String __md_methods;
static {
__md_methods =
"n_isRequiredServiceSupported:(Landroid/bluetooth/BluetoothGatt;)Z:GetIsRequiredServiceSupported_Landroid_bluetooth_BluetoothGatt_Handler\n" +
"n_onDeviceDisconnected:()V:GetOnDeviceDisconnectedHandler\n" +
"";
mono.android.Runtime.register ("BleLibrary.NordicScanner.MyManagerGattCallback, BleLibrary", MyManagerGattCallback.class, __md_methods);
}
public MyManagerGattCallback ()
{
super ();
if (getClass () == MyManagerGattCallback.class)
mono.android.TypeManager.Activate ("BleLibrary.NordicScanner.MyManagerGattCallback, BleLibrary", "", this, new java.lang.Object[] { });
}
public boolean isRequiredServiceSupported (android.bluetooth.BluetoothGatt p0)
{
return n_isRequiredServiceSupported (p0);
}
private native boolean n_isRequiredServiceSupported (android.bluetooth.BluetoothGatt p0);
public void onDeviceDisconnected ()
{
n_onDeviceDisconnected ();
}
private native void n_onDeviceDisconnected ();
private java.util.ArrayList refList;
public void monodroidAddReference (java.lang.Object obj)
{
if (refList == null)
refList = new java.util.ArrayList ();
refList.add (obj);
}
public void monodroidClearReferences ()
{
if (refList != null)
refList.clear ();
}
}
Кажется, прямо вперед go в BleManager.BleManagerGattCallback и изменить его видимость для публикации c. Это было сделано. Я думаю, что проблема в том, что этот метод перегружен. Перегруженный метод защищен, но я не могу найти правильное преобразование, чтобы опубликовать его c.
protected BleManagerGattCallback (IntPtr javaReference, JniHandleOwnership transfer) : base (javaReference, transfer) {}
// Metadata.xml XPath constructor reference: path="/api/package[@name='no.nordicsemi.android.ble']/class[@name='BleManager.BleManagerGattCallback']/constructor[@name='BleManager.BleManagerGattCallback' and count(parameter)=0]"
[Register (".ctor", "()V", "")]
public unsafe BleManagerGattCallback ()
: base (IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
{
const string __id = "()V";
if (((global::Java.Lang.Object) this).Handle != IntPtr.Zero)
return;
try {
var __r = _members.InstanceMethods.StartCreateInstance (__id, ((object) this).GetType (), null);
SetHandle (__r.Handle, JniHandleOwnership.TransferLocalRef);
_members.InstanceMethods.FinishCreateInstance (__id, this, null);
} finally {
}
}