#xamarin #xamarin.android #onactivityresult #startactivityforresult #activity-result-api
Вопрос:
Похоже, что он не поддерживается должным образом, так как мне нужно реализовать 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