2011-09-02 23 views
5

私はNativeActivityを使用するアプリケーションを持っています。私はコンテキストを必要とする何かをするためにJavaを呼び出す必要があります(例えば、IMEIに問い合わせるためにTelephonyManagerにアクセスする)。NativeActivityからコンテキストを取得する

有効なコンテキストを取得するにはどうすればよいですか?

ANativeActivity構造体には、JavaVMやJNI環境など、アプリケーションに役立つさまざまなデータが含まれています。また、NativeActivityのクラスオブジェクトを指すjobjectも含まれています。それに含まれないのは、NativeActivityのインスタンスを指し示すジョブです。私はstruct android_appでも役に立ちません。

これを行う必要があります。任意のアイデアどのように?

+0

可能な二重の質問です。これをチェックしてくださいhttp://stackoverflow.com/questions/4449864/access-android-context-in-ndk-application – weakwire

+0

いいえ、その質問は古いスタイルのNDK(Javaから厳密に呼び出された場所)を指しますが、私は新しいスタイルのNativeActivity NDKを使用しています(メインアプリケーションはネイティブコードで記述され、Javaに呼び出されます)。 –

答えて

4

ANativeActivityclazzメンバの名前にもかかわらず、実際にはandroid.app.NativeActivityインスタンスを指しています。
ネイティブアクティビティからJavaコードへのJNI呼び出しの使用例については、this postを確認してください。

+0

ヘッダーのドキュメントはクラスだと言っていますが、はい、実際にはクラスを使用するのではなく、インスタンスを使用しようとしています。ありがとう! –

+0

はい、そうです。このドキュメントは、Clazzのフィールドを「The NativeActivity Java class」と記述しているため、混乱しています。唯一の弱いヒントは 'clclass'型です:' jclass'ではなく 'jobject'です。それにもかかわらず、ドキュメントの改善を掲載するためのバグ/機能リクエストは価値があります。 – Idolon

関連する問題