提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
使用uniapp打包成app,有时候需要获取sdk码
代码如下(示例):
var serial= ''
var Build = plus.android.importClass("android.os.Build");
var Manifest = plus.android.importClass("android.Manifest");
var MainActivity = plus.android.runtimeMainActivity();
var SystemProperties = plus.android.importClass("android.os.SystemProperties")
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { //9.0+
var ArrPermissions = [
Manifest.permission.READ_PHONE_STATE,
];
function PermissionCheck(permission) {
if (Build.VERSION.SDK_INT >= 23) {
if (MainActivity.checkSelfPermission(permission) == -1) {
return false;
}
}
return true;
}
function PermissionChecks(Arr) {
var HasPermission = true;
for (var index in Arr) {
var permission = Arr[index];
//如果此处没有权限,则是用户拒绝了
if (!PermissionCheck(permission)) {
HasPermission = false;
break;
}
}
return HasPermission;
}
function PermissionRequest(Arr) {
var REQUEST_CODE_CONTACT = 101;
if (Build.VERSION.SDK_INT >= 23) {
MainActivity.requestPermissions(Arr, REQUEST_CODE_CONTACT);
}
}
//如果没有权限,则申请权限
if (!PermissionChecks(ArrPermissions)) {
PermissionRequest(ArrPermissions); //此处申请权限,会弹出一个让你授权可获取设备号信息权限框
} else { //如果拥有权限
serial = Build.getSerial()
}
} else if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N) { //8.0+
if (Build.SERIAL) {
serial = Build.SERIAL;
}
} else {
if (SystemProperties.get('ro.serialno')) {
serial = SystemProperties.get('ro.serialno')
}
}
export const SERIAL = serial
总结
Android 8.0以下:无需申请权限,可以通过Build.SERIAL获取到设备序列号Android 8.0-Android 10:需要申请READ_PHONE_STATE权限,可以通过Build.getSerial()获取到设备序列号
Android 10 以上:获取不到设备序列表(目前获取为unknow)。