gpt4 book ai didi

android - JNIEnv 用于从 native 代码获取 ANDROID_ID

转载 作者:行者123 更新时间:2023-11-30 17:30:43 27 4
gpt4 key购买 nike

我需要在我的 native 库中获取 Android 唯一设备 ID。据我所知,它可以用Java API来完成,我需要使用JNI。我读过this ,也有类似的问题,但是访问的是不同的ID。但是这个解决方案需要引用 JNIEnv 来获取 Java 对象/方法。当从 Java 调用 JNI 方法时,这不是问题,JNIEnv 将从 Java 传递。但我如何才能获得“总” native 代码的 JNIEnv 呢?

最佳答案

您的 native Activity 的入口点收到 struct android_app*作为其论点。 android_app包含 ANativeActivity*命名activity ,其中又包含 JNIEnv*命名env .

为了能够从 native 代码调用 Android Java API 方法,您必须首先将当前线程附加到 VM,即:

JNIEnv *env = state->activity->env;
JavaVM *vm = state->activity->vm;
(*vm)->AttachCurrentThread(vm, &env, NULL);

(其中 statestruct android_app* )

关于android - JNIEnv 用于从 native 代码获取 ANDROID_ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25010582/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com