代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
设备相关
作者:
伟群
/ 发布于
2017/2/21
/
718
package com.blankj.utilcode.utils; import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.os.Build; import android.os.PowerManager; import android.provider.Settings; import java.io.File; import java.net.NetworkInterface; import java.util.Collections; import java.util.List; /** * <pre> * author: Blankj * blog : http://blankj.com * time : 2016/8/1 * desc : 设备相关工具类 * </pre> */ public class DeviceUtils { private DeviceUtils() { throw new UnsupportedOperationException("u can't instantiate me..."); } /** * 判断设备是否root * * @return the boolean{@code true}: 是{@code false}: 否 */ public static boolean isDeviceRooted() { String su = "su"; String[] locations = {"/system/bin/", "/system/xbin/", "/sbin/", "/system/sd/xbin/", "/system/bin/failsafe/", "/data/local/xbin/", "/data/local/bin/", "/data/local/"}; for (String location : locations) { if (new File(location + su).exists()) { return true; } } return false; } /** * 获取设备系统版本号 * * @return 设备系统版本号 */ public static int getSDKVersion() { return android.os.Build.VERSION.SDK_INT; } /** * 获取设备AndroidID * * @return AndroidID */ @SuppressLint("HardwareIds") public static String getAndroidID() { return Settings.Secure.getString(Utils.getContext().getContentResolver(), Settings.Secure.ANDROID_ID); } /** * 获取设备MAC地址 * 需添加权限 {@code <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>} * 需添加权限 {@code <uses-permission android:name="android.permission.INTERNET"/>} * * @return MAC地址 */ public static String getMacAddress() { String macAddress = getMacAddressByWifiInfo(); if (!"02:00:00:00:00:00".equals(macAddress)) { return macAddress; } macAddress = getMacAddressByNetworkInterface(); if (!"02:00:00:00:00:00".equals(macAddress)) { return macAddress; } macAddress = getMacAddressByFile(); if (!"02:00:00:00:00:00".equals(macAddress)) { return macAddress; } return "please open wifi"; } /** * 获取设备MAC地址 * 需添加权限 {@code <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>} * * @return MAC地址 */ @SuppressLint("HardwareIds") private static String getMacAddressByWifiInfo() { try { WifiManager wifi = (WifiManager) Utils.getContext().getSystemService(Context.WIFI_SERVICE); if (wifi != null) { WifiInfo info = wifi.getConnectionInfo(); if (info != null) return info.getMacAddress(); } } catch (Exception e) { e.printStackTrace(); } return "02:00:00:00:00:00"; } /** * 获取设备MAC地址 * 需添加权限 {@code <uses-permission android:name="android.permission.INTERNET"/>} * * @return MAC地址 */ private static String getMacAddressByNetworkInterface() { try { List<NetworkInterface> nis = Collections.list(NetworkInterface.getNetworkInterfaces()); for (NetworkInterface ni : nis) { if (!ni.getName().equalsIgnoreCase("wlan0")) continue; byte[] macBytes = ni.getHardwareAddress(); if (macBytes != null && macBytes.length > 0) { StringBuilder res1 = new StringBuilder(); for (byte b : macBytes) { res1.append(String.format("%02x:", b)); } return res1.deleteCharAt(res1.length() - 1).toString(); } } } catch (Exception e) { e.printStackTrace(); } return "02:00:00:00:00:00"; } /** * 获取设备MAC地址 * * @return MAC地址 */ private static String getMacAddressByFile() { ShellUtils.CommandResult result = ShellUtils.execCmd("getprop wifi.interface", false); if (result.result == 0) { String name = result.successMsg; if (name != null) { result = ShellUtils.execCmd("cat /sys/class/net/" + name + "/address", false); if (result.result == 0) { if (result.successMsg != null) { return result.successMsg; } } } } return "02:00:00:00:00:00"; } /** * 获取设备厂商 * 如Xiaomi * * @return 设备厂商 */ public static String getManufacturer() { return Build.MANUFACTURER; } /** * 获取设备型号 * 如MI2SC * * @return 设备型号 */ public static String getModel() { String model = Build.MODEL; if (model != null) { model = model.trim().replaceAll("\\s*", ""); } else { model = ""; } return model; } /** * 关机 * 需要root权限或者系统权限 {@code <android:sharedUserId="android.uid.system"/>} */ public static void shutdown() { ShellUtils.execCmd("reboot -p", true); Intent intent = new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN"); intent.putExtra("android.intent.extra.KEY_CONFIRM", false); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Utils.getContext().startActivity(intent); } /** * 重启 * 需要root权限或者系统权限 {@code <android:sharedUserId="android.uid.system"/>} * */ public static void reboot() { ShellUtils.execCmd("reboot", true); Intent intent = new Intent(Intent.ACTION_REBOOT); intent.putExtra("nowait", 1); intent.putExtra("interval", 1); intent.putExtra("window", 0); Utils.getContext().sendBroadcast(intent); } /** * 重启 * 需系统权限 {@code <android:sharedUserId="android.uid.system"/>} * * @param reason 传递给内核来请求特殊的引导模式,如"recovery" */ public static void reboot(String reason) { PowerManager mPowerManager = (PowerManager) Utils.getContext().getSystemService(Context.POWER_SERVICE); try { mPowerManager.reboot(reason); } catch (Exception e) { e.printStackTrace(); } } /** * 重启到recovery * 需要root权限 */ public static void reboot2Recovery() { ShellUtils.execCmd("reboot recovery", true); } /** * 重启到bootloader * 需要root权限 */ public static void reboot2Bootloader() { ShellUtils.execCmd("reboot bootloader", true); } }
试试其它关键字
设备相关
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
伟群
贡献的其它代码
(
11
)
.
jquery获取form表单
.
批处理(bat)实现SQLServer数据库备份与还原
.
设备相关
.
逗号分割字符串
.
注册表工具类
.
带图标的搜索框
.
网页转化为PDF,并用流输出.
.
将一列数据转换成一个字段数据,逗号分隔
.
德州扑克的核心规则算法
.
The Process cannot access the file
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3