gpt4 book ai didi

android 在 cc/c++ 中获取 imei for ndk/JNI

转载 作者:太空宇宙 更新时间:2023-11-03 23:43:21 25 4
gpt4 key购买 nike

我会尝试使用 C/C++(使用 ndk)获取设备的 imei 并使用 JNI 检索结果。

const char *res = exec_get_out("service call iphonesubinfo 3");

在 shell 中工作,但在我的应用程序中不工作

我在 list 中设置了 READ_PHONE_STATE 权限。这是针对 Marshmallow Android 的(我已经在设置中接受了许可)

如果没有 JNI 环境,是否还有其他可行的解决方案?

最佳答案

检查 thisthis

#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);
}
}

关于android 在 cc/c++ 中获取 imei for ndk/JNI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40134288/

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