能力值:
( LV2,RANK:10 )
|
-
-
2 楼
Build.SERIAL不行吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
@RequiresPermission(Manifest.permission.READ_PHONE_STATE) public static String getSerial() { IDeviceIdentifiersPolicyService service = IDeviceIdentifiersPolicyService.Stub .asInterface(ServiceManager.getService(Context.DEVICE_IDENTIFIERS_SERVICE)); try { return service.getSerial(); } catch (RemoteException e) { e.rethrowFromSystemServer(); } return UNKNOWN; }
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
需要read_phone权限
|
能力值:
( LV3,RANK:30 )
|
-
-
5 楼
XtraLove
Build.SERIAL不行吗?
XtraLove,你好。要有READ_PHONE_STATE的权限,申请权限后直接用java的代码 String serialNum = android.os.Build.SERIAL;就可以获取到的。我想问的是C代码。因为这部分读取序列号的操作在.so中完成,用了NDK中函数__system_property_get("ro.serialno",serialID),这个函数一直获取不到数据,用这个函数可以获取到其他属性的数据,比如"ro.build.version.sdk"等,就是独独获取不到"ro.serialno",很奇怪。
|
能力值:
( LV3,RANK:30 )
|
-
-
6 楼
自问自答,java代码能访问的话,直接在c中GetStaticObjectField访问静态域就可以了,现成的函数__system_property_get不可以就不用了 。 jstring jserial = (jstring)env->GetStaticObjectField(env->FindClass("android/os/Build"), env->GetStaticFieldID( env->FindClass("android/os/Build"), "SERIAL", "Ljava/lang/String;"));
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
会不会是ro.serialno这地路径的问题
|
|
|