网站内链wordpress插件,网站设计公司北京,微信端网站开发流程,无锡网络公司无锡网站制作13 版本的以太网设置和以前版本有所变动#xff0c;在 AS 中就能直接调用对应 API
将 build.gradle 版本修改 compileSdkVersion 31, 即可直接调用 EthernetManager 相关#xff0c;
设置静态等方法可以通过反射调用设置。
以下是核心设置静态和动态参数工具类#xff0c…13 版本的以太网设置和以前版本有所变动在 AS 中就能直接调用对应 API
将 build.gradle 版本修改 compileSdkVersion 31, 即可直接调用 EthernetManager 相关
设置静态等方法可以通过反射调用设置。
以下是核心设置静态和动态参数工具类界面大家可以自由发挥
以太网电源开关和你们驱动协商写个节点啥的都ok
import android.content.ContentResolver;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.EthernetManager;
import android.net.IpConfiguration;
import android.net.LinkAddress;
import android.net.LinkProperties;
import android.net.RouteInfo;
import android.net.StaticIpConfiguration;
import android.provider.Settings;
import android.provider.Settings.System;
import android.text.TextUtils;
import android.util.Log;import java.io.FileOutputStream;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.util.ArrayList;
import java.util.List;import static android.content.Context.CONNECTIVITY_SERVICE;public class EthernetUtil {private static final String TAG EthernetUtil;public static final String IS_ETHERNET_OPEN isEthernetOpen;public static final String IS_ETHERNET_STATUC_OPEN isEthernetStaticOpen;public static final String ETHERNET_STATIC_DNS1 ethernet_static_dns1;public static final String ETHERNET_STATIC_DNS2 ethernet_static_dns2;public static final String ETHERNET_STATIC_GATEWAY ethernet_static_gateway;public static final String ETHERNET_STATIC_IP ethernet_static_ip;public static final String ETHERNET_STATIC_NETMASK ethernet_static_netmask;EthernetManager mEthernetManager;Context mContext;private static EthernetUtil ethernetUtil;public static EthernetUtil getInstance() {if (ethernetUtil null) {ethernetUtil new EthernetUtil();}return ethernetUtil;}public void setContext(Context context) {mContext context;}public void saveEthernetConfig() {boolean isOpen isEthernetEnabled();boolean isStatic isStaticEnabled();Log.d(TAG, saveEthernetConfig isOpen isOpen isStatic isStatic);mEthernetManager (EthernetManager) mContext.getSystemService(Context.ETHERNET_SERVICE);IpConfiguration mIpConfiguration new IpConfiguration();StaticIpConfiguration.Builder staticIpConfiguration new StaticIpConfiguration.Builder();ContentResolver mContentResolver mContext.getContentResolver();if (isOpen) {if (isStatic) {try {String ip System.getString(mContentResolver, ETHERNET_STATIC_IP);String gateWay System.getString(mContentResolver, ETHERNET_STATIC_GATEWAY);String netMask System.getString(mContentResolver, ETHERNET_STATIC_NETMASK);String dns1 System.getString(mContentResolver, ETHERNET_STATIC_DNS1);String dns2 System.getString(mContentResolver, ETHERNET_STATIC_DNS2);staticIpConfiguration.setIpAddress(new LinkAddress(InetAddress.getByName(ip),getNetMaskInt(netMask)));staticIpConfiguration.setDomains(netMask);staticIpConfiguration.setGateway(InetAddress.getByName(gateWay));ArrayListInetAddress dnsAddresses new ArrayList();dnsAddresses.add((Inet4Address) InetAddress.getByName(TextUtils.isEmpty(dns1) ? 8.8.8.8 : dns1));dnsAddresses.add((Inet4Address) InetAddress.getByName(TextUtils.isEmpty(dns2) ? 114.114.114.114 : dns2));staticIpConfiguration.setDnsServers(dnsAddresses);} catch (Exception e) {e.printStackTrace();}Log.d(TAG, IpAssignment.STATIC IpConfiguration.IpAssignment.STATIC);mIpConfiguration.setIpAssignment(IpConfiguration.IpAssignment.STATIC);mIpConfiguration.setProxySettings(IpConfiguration.ProxySettings.STATIC);mIpConfiguration.setStaticIpConfiguration(staticIpConfiguration.build());} else {mIpConfiguration.setIpAssignment(IpConfiguration.IpAssignment.DHCP);mIpConfiguration.setProxySettings(IpConfiguration.ProxySettings.NONE);mIpConfiguration.setStaticIpConfiguration(null);Log.d(TAG, IpAssignment.DHCP IpConfiguration.IpAssignment.DHCP);}setConfiguration(eth0, mIpConfiguration);setEthernetEnabled(true);Log.d(TAG, setEthernet true);} else {setEthernetEnabled(false);Log.d(TAG, setEthernet false);}}private void setEthernetEnabled(boolean enabled) {try {Class? extends EthernetManager c mEthernetManager.getClass();Method method c.getMethod(setEthernetEnabled, boolean.class);EthernetManager tempManager mEthernetManager;method.setAccessible(true);Log.e(TAG, get setEthernetEnabled Method: (method null));method.invoke(tempManager, enabled);} catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {Log.e(TAG, getDeclaredMethod: e.getMessage());}}private void setConfiguration(String iface, IpConfiguration config) {try {Class? extends EthernetManager c mEthernetManager.getClass();Method method c.getMethod(setConfiguration, String.class, IpConfiguration.class);EthernetManager tempManager mEthernetManager;method.setAccessible(true);Log.e(TAG, get setConfiguration Method: (method null));method.invoke(tempManager, iface, config);} catch (Exception e) {Log.e(TAG, getDeclaredMethod: e.getMessage());}}private String interMask2String(int prefixLength) {String netMask null;int inetMask prefixLength;int part inetMask / 8;int remainder inetMask % 8;int sum 0;for (int i 8; i 8 - remainder; i--) {sum sum (int) Math.pow(2, i - 1);}if (part 0) {netMask sum .0.0.0;} else if (part 1) {netMask 255. sum .0.0;} else if (part 2) {netMask 255.255. sum .0;} else if (part 3) {netMask 255.255.255. sum;} else if (part 4) {netMask 255.255.255.255;}return netMask;}public boolean isValidIpAddress(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;}private int getNetMaskInt(String netMask) {Log.d(TAG, netMask netMask);StringBuffer sbf;String str;int prefixLength 0, count 0;String[] split netMask.split(\\.);for (int n 0; n split.length; n) {sbf toBin(Integer.parseInt(split[n]));str sbf.reverse().toString();//Log.e(net, split[n] str);count 0;for (int i 0; i str.length(); i) {i str.indexOf(1, i);if (i -1) {break;}count;}prefixLength count;}return prefixLength;}private StringBuffer toBin(int x) {StringBuffer result new StringBuffer();result.append(x % 2);x / 2;while (x 0) {result.append(x % 2);x / 2;}return result;}public String getSaveIp(){return Settings.System.getString(mContext.getContentResolver(), ETHERNET_STATIC_IP);}public String getSaveNetMask(){return Settings.System.getString(mContext.getContentResolver(), ETHERNET_STATIC_NETMASK);}public String getSaveGateway(){return Settings.System.getString(mContext.getContentResolver(), ETHERNET_STATIC_GATEWAY);}public String getSaveDns1(){return Settings.System.getString(mContext.getContentResolver(), ETHERNET_STATIC_DNS1);}public String getSaveDns2(){return Settings.System.getString(mContext.getContentResolver(), ETHERNET_STATIC_DNS2);}public boolean isEthernetEnabled() {return Settings.System.getInt(mContext.getContentResolver(), IS_ETHERNET_OPEN, 0) 1;}public boolean isStaticEnabled() {return Settings.System.getInt(mContext.getContentResolver(), IS_ETHERNET_STATUC_OPEN, 0) 1;}public void setEthernetEnabled(boolean flag) {Settings.System.putInt(mContext.getContentResolver(), IS_ETHERNET_OPEN, flag ? 1 : 0);}public void setStaticEnabled(boolean flag) {Settings.System.putInt(mContext.getContentResolver(), IS_ETHERNET_STATUC_OPEN, flag ? 1 : 0);}}