public class SystemUtil {
/**
* 获取设备UUID
*/
public static String getUUID(Context con) {
final TelephonyManager tm = (TelephonyManager) con
.getSystemService(Context.TELEPHONY_SERVICE);
final String tmDevice, tmSerial, androidId;
tmDevice = "" + tm.getDeviceId();
tmSerial = "" + tm.getSimSerialNumber();
androidId = ""
+ android.provider.Settings.Secure.getString(
con.getContentResolver(),
android.provider.Settings.Secure.ANDROID_ID);
UUID deviceUuid = new UUID(androidId.hashCode(),
((long) tmDevice.hashCode() << 32) | tmSerial.hashCode());
return deviceUuid.toString();
}
public static String getVersionName(Context con) {
PackageManager manager = con.getPackageManager();
PackageInfo info;
try {
info = manager.getPackageInfo(con.getPackageName(), 0);
String version = info.versionName;
return version;
} catch (NameNotFoundException e) {
e.printStackTrace();
return "";
}
}
/**
* 获取IP地址
*
* @return
*/
public static String getIp(Context con) {
String ip = "";
ConnectivityManager conMann = (ConnectivityManager) con
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mobileNetworkInfo = conMann
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
NetworkInfo wifiNetworkInfo = conMann
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (mobileNetworkInfo.isConnected()) {
ip = getLocalIpAddress();
System.out.println("本地ip-----" + ip);
} else if (wifiNetworkInfo.isConnected()) {
WifiManager wifiManager = (WifiManager) con
.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
ip = intToIp(ipAddress);
System.out.println("wifi_ip地址为------" + ip);
}
return ip;
}
private static String intToIp(int ipInt) {
StringBuilder sb = new StringBuilder();
sb.append(ipInt & 0xFF).append(".");
sb.append((ipInt >> 8) & 0xFF).append(".");
sb.append((ipInt >> 16) & 0xFF).append(".");
sb.append((ipInt >> 24) & 0xFF);
return sb.toString();
}
private static String getLocalIpAddress() {
try {
String ipv4;
ArrayList<NetworkInterface> nilist = Collections
.list(NetworkInterface.getNetworkInterfaces());
for (NetworkInterface ni : nilist) {
ArrayList<InetAddress> ialist = Collections.list(ni
.getInetAddresses());
for (InetAddress address : ialist) {
if (!address.isLoopbackAddress()
&& InetAddressUtils.isIPv4Address(ipv4 = address
.getHostAddress())) {
return ipv4;
}
}
}
} catch (SocketException ex) {
Log.e("localip", ex.toString());
}
return "";
}
private void updateLocalMsg() {
// LogUtils.e("ip=" + SystemUtil.getIp(getApplicationContext())
// + " uuid=" + SystemUtil.getUUID(getApplicationContext())
// + " versionname="
// + SystemUtil.getVersionName(getApplicationContext()));
}
}