Использование API результатов действий в Xamarin.Android
Похоже, что он не поддерживается должным образом, поскольку мне нужно реализовать материал JNI, когда я пытаюсь реализовать
IActivityResultCallback
интерфейс. Также
ActivityResultContract
не является универсальным классом, поэтому, когда я наследую его для создания пользовательского контракта, он не является типобезопасным, как в родном Android. Полагаю, в данный момент он вообще не используется?
1 ответ
Вы можете обойти эту проблему, унаследовав от
Java.Lang.Object
. Что-то вроде этого, вероятно, сработает:
public class MyActivityResultCallback : Java.Lang.Object, IActivityResultCallback
{
}
IActivityResultCallback наследуется от IJavaObject, что делает большинство, если не все интерфейсы Android. Таким образом, Xamarin может взаимодействовать между C # и Java. Это довольно хорошо описано здесь: https://docs.microsoft.com/en-us/xamarin/android/platform/java-integration/working-with-jni#implementing-interfaces