@SuppressLint({"NewApi", "MissingPermission"})
public static String getSerialNumber() {
String serial = "";
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
serial = Build.getSerial();
} else if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N) {
serial = Build.SERIAL;
} else {
Class<?> c = Class.forName("android.os.SystemProperties");
Method get = c.getMethod("get", String.class);
serial = (String) get.invoke(c, "ro.serialno");
}
} catch (Exception e) {
e.printStackTrace();
Log.e("TAG", "读取设备序列号异常:" + e.toString());
}
return serial;
}
public static String getVersionName(Context context) {
PackageManager manager = context.getPackageManager();
String name = null;
try {
PackageInfo info = manager.getPackageInfo(context.getPackageName(), 0);
name = info.versionName;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return name;
}
public static String getBrand() {
return android.os.Build.BRAND;
}
public static String getSystemVersion() {
return android.os.Build.VERSION.RELEASE;
}
public static String getModelName() {
return android.os.Build.MODEL;
}
public static String getDeviceBoard() {
return android.os.Build.BOARD;
}
public static String getDeviceDevice() {
return android.os.Build.DEVICE;
}
public static String getDeviceFubgerprint() {
return android.os.Build.FINGERPRINT;
}
public static String getDeviceHardware() {
return android.os.Build.HARDWARE;
}
public static String getDeviceHost() {
return android.os.Build.HOST;
}
public static String getDeviceDisplay() {
return android.os.Build.DISPLAY;
}
public static String getDeviceUser() {
return android.os.Build.USER;
}
public static String getDeviceSerial() {
return android.os.Build.SERIAL;
}
public static int getDeviceSDK() {
return android.os.Build.VERSION.SDK_INT;
}
public static String getDeviceDefaultLanguage() {
return Locale.getDefault().getLanguage();
}
equipment_name.setOnClickListener(v -> {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
equipment_name.setText(getDeviceName(MainActivity.this));
}
});
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)
public static String getDeviceName(Context context) {
return Settings.Global.getString(context.getContentResolver(),Settings.Global.DEVICE_NAME);
}
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)
public static void setDeviceName(Context context, String name) {
Settings.Global.putString(context.getContentResolver(), Settings.Global.DEVICE_NAME, name);
BluetoothAdapter.getDefaultAdapter().setName(name);
}
java.lang.SecurityException: Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS
在清单文件中加入<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>也无事于补,所以还是需要到系统中在进行设置
|