¿Cómo obtener la identificación del dispositivo con JNI en Android?
Quiero obtener IMEI de c por JNI
, utilizo el código de abajo, pero cumplió con el error que no pudo obtener cls
, siempre devuelve NULL
. Comprobé env y el contexto, estaban bien. ¿Por qué no podría obtener el Context
¿clase? Busqué en Internet, alguien dice que deberíamos usar java/lang/Object
lugar de usar android/context/Context
, probé esto, funciona, cls ya no era NULL, pero causó un nuevo error cuando llamo a getSystemService
, tal vez porque común java/lang/Object
no tienen este método. ¿Alguien podría ayudarme? 3Q.
char * get_dev_id(JNIEnv *env, jobject context) { jclass cls = (*env)->FindClass(env, "android/context/Context"); // ---------------- cls == NULL all the time jmethodID mid = (*env)->GetMethodID(env, cls, "getSystemService", "(Ljava/lang/String;)Ljava/lang/Object;"); jfieldID fid = (*env)->GetStaticFieldID(env, cls, "TELEPHONY_SERVICE", "Ljava/lang/String;"); jstring str = (*env)->GetStaticObjectField(env, cls, fid); jobject telephony = (*env)->CallObjectMethod(env, context, mid, str); cls = (*env)->FindClass(env, "android/telephony/TelephonyManager"); mid =(*env)->GetMethodID(env, cls, "getDeviceId", "()Ljava/lang/String;"); str = (*env)->CallObjectMethod(env, telephony, mid); jsize len = (*env)->GetStringUTFLength(env, str); char* deviceId = calloc(len + 1, 1); (*env)->GetStringUTFRegion(env, str, 0, len, deviceId); (*env)->DeleteLocalRef(env, str); /* to get a string in deviceId */ return deviceId; }
- Android Camera takePicture utiliza Previews small buffer
- Técnica subyacente de FaceDetector de Android
- Excepción actualizando juego a cocos2d-x v2.0
- Android NDK - NativeActivity vs JNI lib
- Aplicación para Android con 2 librerías con jniLibs - bloquea la aplicación
- Android cómo mantener la biblioteca nativa cuando la aplicación se detuvo
- Cómo llamar a Java API de subproceso de C ++ de NDK?
- Android poco convencional y desagradable durante el código de carga de JNI / OpenGL ES
- ¿Cómo uso realmente ffmpeg en Android?
- ¿Cómo podemos agregar la imagen animada / simple como una capa superior al video y exportarla como un solo video en Android?
- ¿Las funciones de Android JNI se ejecutan en el hilo principal?
- ¿Cómo utilizar NDK? Comenzando con la aplicación "hola mundo"
- No se pudo cargar la biblioteca libopencv_java.so
- ¿Qué es "pools de asignación para objetos temporales"?
- Android WebView ZoomManager.onSizeChanged NullPointerException