Friday, 23 August 2013

how to get android_id in JNI

how to get android_id in JNI

void init_androidId(JNIEnv * env, jobject activity){
jclass clsontentResolver = env->GetObjectClass(activity);
if (clsontentResolver==NULL)
{
LOG`E`("resolver is null");
}
jmethodID mid_getContentResolver
=env->GetMethodID(clsontentResolver,"getContentResolver","()Landroid/content/ContentResolver;");
if (mid_getContentResolver==NULL)
{
LOGE("mid_getContentResolver is null");
}
jobject contentObj = env->CallObjectMethod(activity,
mid_getContentResolver);
if (contentObj==NULL)
{
LOGE("contentObj is null");
}
jclass secClass=env->FindClass("android/provider/Settings$Secure");
if (secClass==NULL)
{
LOGE("secClass is null");
}
jmethodID
secMid=env->GetMethodID(secClass,"getString","(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;");
if (secMid==NULL)
{
LOGE("secMid is null");
return;
}
jstring jandroid_id= (jstring)
env->CallStaticObjectMethod(secClass,secMid,contentObj,"android_id");
if (jandroid_id==NULL)
{
LOGE("jandroid_id is null");
}
const char *id=env->GetStringUTFChars(jandroid_id, 0);
LOGE("id %s ",id);
// jstring jstring=
(jstring)env->CallStaticObjectMethod(secClass,secMid);}
}
I try get android_id from NDK, but i found secMid'value is NULL jmethodID
secMid=env->GetMethodID(secClass,"getString","(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;");
what's problem? thanks

No comments:

Post a Comment