package tw.jwzhuang.ipcam;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Enumeration;
import android.graphics.Point;
import android.util.Log;
import android.view.Display;
import android.view.WindowManager;
public class Utils {
/**
* 取得螢幕大小
* @param wm WindowManager
* @return
*/
public static Point getScreenSize(WindowManager wm){
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getSize(size);
return size;
}
/**
* 取得裝置的IP位址
*
* @return
* @throws UnknownHostException
*/
public static String getLocalIpAddress() {
try {
for (Enumeration<NetworkInterface> en = NetworkInterface
.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf
.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()
&& (inetAddress instanceof Inet4Address)) {
return inetAddress.getHostAddress().toString();
}
}
}
} catch (SocketException ex) {
Log.e("ExFunctions", ex.toString());
}
return null;
}
/**
* 產生亂數密碼
* @param digitOfSet
* @param set
* @return String
*/
public static String pwdGenerator(int digitOfSet, int set) {
String newPwd = "";
String pwdSet = "";
// System.Random rand = new System.Random(); // for C#
int num = 0;
for (int i = 0; i < set; i++) {
if(i > 0)
newPwd += "-"; //各組英數之間的分隔號
pwdSet = "";
while (pwdSet.length() < digitOfSet) {
num = (int)(Math.random()*(90-50+1))+50; // for Java
if (num > 57 && num < 65)
continue; //排除 58~64 這區間的非英數符號
else if (num == 79 || num == 73)
continue; //排除 I 和 O
pwdSet += (char)num; //將數字轉換為字元
}
newPwd += pwdSet;
}
return newPwd;
}
}