Monodroid プロジェクトでは、クラスでプライベート メソッドを呼び出せるようにする必要があります。関連する質問 の回答から、これはリフレクションを介してJavaで可能であるようです:
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import android.os.ParcelFileDescriptor;
...
ParcelFileDescriptor pipe[] = null;
try {
Method createPipeMethod = ParcelFileDescriptor.class.getDeclaredMethod("createPipe");
pipe = (ParcelFileDescriptor[]) createPipeMethod.invoke(null);
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
} catch (InvocationTargetException e) {
throw new RuntimeException(e);
}
Monodroid からこのコードを使用する必要があります。残念ながら、java.lang.reflect
モノドロイドでは利用できません。ただし、Monodroid プロジェクトから JNI を使用してこのコードを実行できることが提案されています。Xamarinのドキュメントには、JAR 全体をバインドしなくてもインライン JNI が可能であると記載されています。残念ながら、これ以上のドキュメントでは、この件についてこれ以上何も述べていません。さらに、JNIEnv に関するドキュメントは空白です。
が必要なようですがJNIEnv.CallVoidMethod()
、やり方がわかりません。例や詳細なドキュメントが見つかりません。
Monodroid プロジェクトで使用java.lang.reflect
したり、他の方法でプライベート メソッド.createPipe
を呼び出したりするにはどうすればよいParcelFileDescriptor
ですか?