我会尝试得到imei
使用 C/C++(使用 ndk)获取设备的数据并使用 JNI 检索结果。
const char *res = exec_get_out("service call iphonesubinfo 3");
在 shell 中工作,但在我的应用程序中不起作用
我有READ_PHONE_STATE
清单中设置的权限。这是针对 Marshmallow Android 的(并且我已接受设置中的许可)
是否有任何其他可行的解决方案,或者如果没有 JNI 环境就不可能?
check this and this
#include <sys/system_properties.h>
//returns the string length of the value.
int ir = __system_property_get("ro.gsm.imei", imei_start);
if(ir > 0)
{
imei_start[15]=0;//strz end
printf("method1 got imei %s len %d\r\n",imei_start,strlen(imei_start));
strcpy(g_imei,imei_start);
}
else
{
printf("method1 imei failed - trying method2\r\n");
//old dumpsys imei getter
char* res = exec_get_out("dumpsys iphonesubinfo");
const char* imei_start_match = "ID = ";
int imei_start_match_len = strlen(imei_start_match);
char* imei_start = strstr(res,imei_start_match);
if(imei_start && strlen(imei_start)>=15+imei_start_match_len)
{
imei_start += imei_start_match_len;
imei_start[15] = 0;
printf("method2 IMEI [%s] len %d\r\n",imei_start,strlen(imei_start));
strcpy(g_imei,imei_start);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)