Android(安卓)Ethernet以太网使用静态IP
16lz
2021-12-04
// 使用静态IP还是DHCPprivate static final String ETHERNET_USE_STATIC_IP = "ethernet_use_static_ip";// IPprivate static final String ETHERNET_STATIC_IP = "ethernet_static_ip";// 网关private static final String ETHERNET_STATIC_GATEWAY = "ethernet_static_gateway";// 子网掩码private static final String ETHERNET_STATIC_NETMASK = "ethernet_static_netmask";// DNS1private static final String ETHERNET_STATIC_DNS1 = "ethernet_static_dns1";// DNS2private static final String ETHERNET_STATIC_DNS2 = "ethernet_static_dns2";
EthernetManager
EthernetManager mEthManager = (EthernetManager)getSystemService(Context.ETHERNET_SERVICE);
GET
checkStaticIP = (CheckBox) findViewById(R.id.checkStaticIP); checkStaticIP.setChecked(Settings.System.getInt(contentResolver, ETHERNET_USE_STATIC_IP, 0) != 0); checkStaticIP .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { android.provider.Settings.System.putInt( contentResolver, ETHERNET_USE_STATIC_IP, isChecked ? 1 : 0); } }); // GET static IP editIPAddress = (EditText) findViewById(R.id.editIPAddress); editIPAddress.setText(Settings.System.getString(contentResolver, ETHERNET_STATIC_IP)); // GET static gateway editGateway = (EditText) findViewById(R.id.editGateway); editGateway.setText(Settings.System.getString(contentResolver, ETHERNET_STATIC_GATEWAY)); // GET static netmask editNetmask = (EditText) findViewById(R.id.editNetmask); editNetmask.setText(Settings.System.getString(contentResolver, ETHERNET_STATIC_NETMASK)); // GET static dns1 editDNS1 = (EditText) findViewById(R.id.editDNS1); editDNS1.setText(Settings.System.getString(contentResolver, ETHERNET_STATIC_DNS1)); // GET static dns2 editDNS2 = (EditText) findViewById(R.id.editDNS2); editDNS2.setText(Settings.System.getString(contentResolver, ETHERNET_STATIC_DNS2));
SET
// SET static IP String strIP = editIPAddress.getText().toString(); Settings.System.putString(contentResolver, ETHERNET_STATIC_IP, strIP); // SET static gateway String strGateway = editGateway.getText().toString(); Settings.System.putString(contentResolver, ETHERNET_STATIC_GATEWAY, strGateway); // SET static netmask String strNetmask = editNetmask.getText().toString(); Settings.System.putString(contentResolver, ETHERNET_STATIC_NETMASK, strNetmask); // SET static dns1 String strDns1 = editDNS1.getText().toString(); Settings.System.putString(contentResolver, ETHERNET_STATIC_DNS1, strDns1); // SET static dns2 String strDns2 = editDNS2.getText().toString(); Settings.System.putString(contentResolver, ETHERNET_STATIC_DNS2, strDns2); // 重启以太网,系统应用API int preState = mEthManager.getEthernetIfaceState(); mEthManager.setEthernetEnabled(false); if (preState == EthernetDataTracker.ETHER_IFACE_STATE_UP) { mEthManager.setEthernetEnabled(true); }
Update:
判断以太网是否开启:
private boolean isEthernetEnable() { boolean isEthernetEnable = false; if (mEthManager == null) { } else { isEthernetEnable = (mEthManager.getEthernetIfaceState() == EthernetDataTracker.ETHER_IFACE_STATE_UP); } Log.i(TAG, "isEthernetEnable:" + isEthernetEnable); return isEthernetEnable; }
设置以太网状态
private void setEthernetEnable(boolean enable) { Log.i(TAG, "setEthernetEnable:" + enable); mEthManager.setEthernetEnabled(enable); }
判断IP地址是否合法:
/** * Check the IP address is valid * * @param value * @return */ private boolean isIpAddressValid(String value) { int start = 0; int end = value.indexOf('.'); int numBlocks = 0; while (start < value.length()) { if (-1 == end) { end = value.length(); } try { int block = Integer.parseInt(value.substring(start, end)); if ((block > 255) || (block < 0)) { Log.w(TAG, "isValidIpAddress() : invalid 'block', block = " + block); return false; } } catch (NumberFormatException e) { Log.w(TAG, "isValidIpAddress() : e = " + e); return false; } numBlocks++; start = end + 1; end = value.indexOf('.', start); } return numBlocks == 4; }
更多相关文章
- android 网络状态判断
- android 简单拨号器 代码
- Android(安卓)判断应用是否安装
- Android中如何判断Intent是否存在?
- Android(安卓)开启闪光灯做手电筒
- android软键盘问题
- android判断用户是否已登陆详细代码
- android 网络状态判断
- android判断一个Service是否存在